diff --git a/Archive/Imo/Imo2019Q4.lean b/Archive/Imo/Imo2019Q4.lean index a34672f2393f90..2f016b94e97dea 100644 --- a/Archive/Imo/Imo2019Q4.lean +++ b/Archive/Imo/Imo2019Q4.lean @@ -34,7 +34,6 @@ open Finset namespace Imo2019Q4 -set_option backward.isDefEq.respectTransparency false in theorem upper_bound {k n : ℕ} (hk : k > 0) (h : (k ! : ℤ) = ∏ i ∈ range n, ((2 : ℤ) ^ n - (2 : ℤ) ^ i)) : n < 6 := by have h2 : ∑ i ∈ range n, i < k := by diff --git a/Archive/Imo/Imo2024Q6.lean b/Archive/Imo/Imo2024Q6.lean index 8c315b62297251..8e26eb7b9494f6 100644 --- a/Archive/Imo/Imo2024Q6.lean +++ b/Archive/Imo/Imo2024Q6.lean @@ -225,7 +225,6 @@ lemma floor_fExample (x : ℚ) : rw [Int.floor_eq_iff] simp [(Int.fract_nonneg x).lt_of_ne' h, (Int.fract_lt_one x).le] -set_option backward.isDefEq.respectTransparency false in lemma card_range_fExample : #(Set.range (fun x ↦ fExample x + fExample (-x))) = 2 := by have h : Set.range (fun x ↦ fExample x + fExample (-x)) = {0, -2} := by ext x diff --git a/Mathlib/Algebra/Category/ContinuousCohomology/Basic.lean b/Mathlib/Algebra/Category/ContinuousCohomology/Basic.lean index da5f2f53763393..9308090b730c82 100644 --- a/Mathlib/Algebra/Category/ContinuousCohomology/Basic.lean +++ b/Mathlib/Algebra/Category/ContinuousCohomology/Basic.lean @@ -136,7 +136,6 @@ def complex : CochainComplex (Action (TopModuleCat R) G ⥤ Action (TopModuleCat end MultiInd -set_option backward.isDefEq.respectTransparency false in /-- The functor taking an `R`-linear `G`-representation to its `G`-invariant submodule. -/ def invariants : Action (TopModuleCat R) G ⥤ TopModuleCat R where obj M := .of R diff --git a/Mathlib/Algebra/Category/ModuleCat/Abelian.lean b/Mathlib/Algebra/Category/ModuleCat/Abelian.lean index aec3ef7a88a85f..783a23e67141ce 100644 --- a/Mathlib/Algebra/Category/ModuleCat/Abelian.lean +++ b/Mathlib/Algebra/Category/ModuleCat/Abelian.lean @@ -52,7 +52,6 @@ def normalMono (hf : Mono f) : NormalMono f where (LinearMap.quotKerEquivRange f.hom ≪≫ₗ LinearEquiv.ofEq _ _ (Submodule.ker_mkQ _).symm))) <| by ext; rfl -set_option backward.isDefEq.respectTransparency false in /-- In the category of modules, every epimorphism is normal. -/ def normalEpi (hf : Epi f) : NormalEpi f where W := of R (LinearMap.ker f.hom) diff --git a/Mathlib/Algebra/Category/ModuleCat/Adjunctions.lean b/Mathlib/Algebra/Category/ModuleCat/Adjunctions.lean index 490979e953274c..9e0360a27a0de6 100644 --- a/Mathlib/Algebra/Category/ModuleCat/Adjunctions.lean +++ b/Mathlib/Algebra/Category/ModuleCat/Adjunctions.lean @@ -252,7 +252,6 @@ namespace Free section -set_option backward.whnf.reducibleClassField false in instance : Preadditive (Free R C) where homGroup _ _ := Finsupp.instAddCommGroup add_comp X Y Z f f' g := by @@ -264,7 +263,6 @@ instance : Preadditive (Free R C) where congr; ext r h rw [Finsupp.sum_add_index'] <;> · simp [mul_add] -set_option backward.whnf.reducibleClassField false in instance : Linear R (Free R C) where homModule _ _ := Finsupp.module _ R smul_comp X Y Z r f g := by @@ -276,7 +274,6 @@ instance : Linear R (Free R C) where congr; ext h s rw [Finsupp.sum_smul_index] <;> simp [mul_left_comm] -set_option backward.whnf.reducibleClassField false in set_option backward.isDefEq.respectTransparency false in theorem single_comp_single {X Y Z : C} (f : X ⟶ Y) (g : Y ⟶ Z) (r s : R) : (single f r ≫ single g s : Free.of R X ⟶ Free.of R Z) = single (f ≫ g) (r * s) := by @@ -303,7 +300,6 @@ variable {C} {D : Type u} [Category.{v} D] [Preadditive D] [Linear R D] open Preadditive Linear -set_option backward.whnf.reducibleClassField false in set_option backward.isDefEq.respectTransparency false in /-- A functor to an `R`-linear category lifts to a functor from its `R`-linear completion. -/ diff --git a/Mathlib/Algebra/Category/ModuleCat/EpiMono.lean b/Mathlib/Algebra/Category/ModuleCat/EpiMono.lean index 4bf5078ce2a29f..8d4a56263b4c75 100644 --- a/Mathlib/Algebra/Category/ModuleCat/EpiMono.lean +++ b/Mathlib/Algebra/Category/ModuleCat/EpiMono.lean @@ -28,7 +28,6 @@ namespace ModuleCat variable {R : Type u} [Ring R] {X Y : ModuleCat.{v} R} (f : X ⟶ Y) variable {M : Type v} [AddCommGroup M] [Module R M] -set_option backward.isDefEq.respectTransparency false in theorem ker_eq_bot_of_mono [Mono f] : LinearMap.ker f.hom = ⊥ := LinearMap.ker_eq_bot_of_cancel fun u v h => ModuleCat.hom_ext_iff.mp <| (@cancel_mono _ _ _ _ _ f _ (↟u) (↟v)).1 <| ModuleCat.hom_ext_iff.mpr h @@ -55,7 +54,6 @@ theorem epi_iff_surjective : Epi f ↔ Function.Surjective f := by def uniqueOfEpiZero (X) [h : Epi (0 : X ⟶ of R M)] : Unique M := uniqueOfSurjectiveZero X ((ModuleCat.epi_iff_surjective _).mp h) -set_option backward.isDefEq.respectTransparency false in instance mono_as_hom'_subtype (U : Submodule R X) : Mono (ModuleCat.ofHom U.subtype) := (mono_iff_ker_eq_bot _).mpr (Submodule.ker_subtype U) diff --git a/Mathlib/Algebra/Category/ModuleCat/ExteriorPower.lean b/Mathlib/Algebra/Category/ModuleCat/ExteriorPower.lean index 3f1d9de2029dfd..c1bf6b14d57304 100644 --- a/Mathlib/Algebra/Category/ModuleCat/ExteriorPower.lean +++ b/Mathlib/Algebra/Category/ModuleCat/ExteriorPower.lean @@ -26,7 +26,6 @@ namespace ModuleCat variable {R : Type u} [CommRing R] -set_option backward.isDefEq.respectTransparency false in /-- The exterior power of an object in `ModuleCat R`. -/ def exteriorPower (M : ModuleCat.{v} R) (n : ℕ) : ModuleCat.{max u v} R := ModuleCat.of R (⋀[R]^n M) @@ -76,7 +75,6 @@ lemma hom_ext {M : ModuleCat.{v} R} {N : ModuleCat.{max u v} R} {n : ℕ} ext : 1 exact exteriorPower.linearMap_ext h -set_option backward.isDefEq.respectTransparency false in /-- The morphism `M.exteriorPower n ⟶ N` induced by an alternating map. -/ noncomputable def desc {M : ModuleCat.{v} R} {n : ℕ} {N : ModuleCat.{max u v} R} (φ : M.AlternatingMap N n) : M.exteriorPower n ⟶ N := @@ -88,7 +86,6 @@ lemma desc_mk {M : ModuleCat.{v} R} {n : ℕ} {N : ModuleCat.{max u v} R} desc φ (mk x) = φ x := by apply exteriorPower.alternatingMapLinearEquiv_apply_ιMulti -set_option backward.isDefEq.respectTransparency false in /-- The morphism `M.exteriorPower n ⟶ N.exteriorPower n` induced by a morphism `M ⟶ N` in `ModuleCat R`. -/ noncomputable def map {M N : ModuleCat.{v} R} (f : M ⟶ N) (n : ℕ) : diff --git a/Mathlib/Algebra/Category/ModuleCat/Images.lean b/Mathlib/Algebra/Category/ModuleCat/Images.lean index c61a130b47f8f4..4f0f8454e0c352 100644 --- a/Mathlib/Algebra/Category/ModuleCat/Images.lean +++ b/Mathlib/Algebra/Category/ModuleCat/Images.lean @@ -33,13 +33,11 @@ attribute [local ext] Subtype.ext section -set_option backward.isDefEq.respectTransparency false in -- implementation details of `HasImage` for ModuleCat; use the API, not these /-- The image of a morphism in `ModuleCat R` is just the bundling of `LinearMap.range f` -/ def image : ModuleCat R := ModuleCat.of R (LinearMap.range f.hom) -set_option backward.isDefEq.respectTransparency false in /-- The inclusion of `image f` into the target -/ def image.ι : image f ⟶ H := ofHom (LinearMap.range f.hom).subtype @@ -47,7 +45,6 @@ def image.ι : image f ⟶ H := instance : Mono (image.ι f) := ConcreteCategory.mono_of_injective (image.ι f) Subtype.val_injective -set_option backward.isDefEq.respectTransparency false in /-- The corestriction map to the image -/ def factorThruImage : G ⟶ image f := ofHom f.hom.rangeRestrict @@ -59,7 +56,6 @@ attribute [local simp] image.fac variable {f} -set_option backward.isDefEq.respectTransparency false in /-- The universal property for the image factorisation -/ noncomputable def image.lift (F' : MonoFactorisation f) : image f ⟶ F'.I := ofHom @@ -99,19 +95,16 @@ noncomputable def isImage : IsImage (monoFactorisation f) where lift := image.lift lift_fac := image.lift_fac -set_option backward.isDefEq.respectTransparency false in /-- The categorical image of a morphism in `ModuleCat R` agrees with the linear algebraic range. -/ noncomputable def imageIsoRange {G H : ModuleCat.{v} R} (f : G ⟶ H) : Limits.image f ≅ ModuleCat.of R (LinearMap.range f.hom) := IsImage.isoExt (Image.isImage f) (isImage f) -set_option backward.isDefEq.respectTransparency false in @[simp, reassoc, elementwise] theorem imageIsoRange_inv_image_ι {G H : ModuleCat.{v} R} (f : G ⟶ H) : (imageIsoRange f).inv ≫ Limits.image.ι f = ModuleCat.ofHom (LinearMap.range f.hom).subtype := IsImage.isoExt_inv_m _ _ -set_option backward.isDefEq.respectTransparency false in @[simp, reassoc, elementwise] theorem imageIsoRange_hom_subtype {G H : ModuleCat.{v} R} (f : G ⟶ H) : (imageIsoRange f).hom ≫ ModuleCat.ofHom (LinearMap.range f.hom).subtype = Limits.image.ι f := by diff --git a/Mathlib/Algebra/Category/ModuleCat/Kernels.lean b/Mathlib/Algebra/Category/ModuleCat/Kernels.lean index ff5cd9c7ea8762..30fa3921a7d585 100644 --- a/Mathlib/Algebra/Category/ModuleCat/Kernels.lean +++ b/Mathlib/Algebra/Category/ModuleCat/Kernels.lean @@ -29,7 +29,6 @@ section variable {M N P : ModuleCat.{v} R} (f : M ⟶ N) -set_option backward.isDefEq.respectTransparency false in /-- The kernel cone induced by the concrete kernel. -/ def kernelCone : KernelFork f := KernelFork.ofι (ofHom (LinearMap.ker f.hom).subtype) <| by aesop @@ -104,7 +103,6 @@ attribute [local instance] hasCokernels_moduleCat variable {G H : ModuleCat.{v} R} (f : G ⟶ H) -set_option backward.isDefEq.respectTransparency false in /-- The categorical kernel of a morphism in `ModuleCat` agrees with the usual module-theoretical kernel. -/ @@ -113,7 +111,6 @@ noncomputable def kernelIsoKer {G H : ModuleCat.{v} R} (f : G ⟶ H) : kernel f ≅ ModuleCat.of R (LinearMap.ker f.hom) := limit.isoLimitCone ⟨_, kernelIsLimit f⟩ -set_option backward.isDefEq.respectTransparency false in -- We now show this isomorphism commutes with the inclusion of the kernel into the source. @[simp, elementwise] -- Porting note (https://github.com/leanprover-community/mathlib4/issues/11036): broken dot notation @@ -121,7 +118,6 @@ theorem kernelIsoKer_inv_kernel_ι : (kernelIsoKer f).inv ≫ kernel.ι f = ofHom (LinearMap.ker f.hom).subtype := limit.isoLimitCone_inv_π _ _ -set_option backward.isDefEq.respectTransparency false in @[simp, elementwise] theorem kernelIsoKer_hom_ker_subtype : -- Porting note (https://github.com/leanprover-community/mathlib4/issues/11036): broken dot notation diff --git a/Mathlib/Algebra/Category/ModuleCat/Subobject.lean b/Mathlib/Algebra/Category/ModuleCat/Subobject.lean index 6166dd8de5b658..8c555f4aeb015b 100644 --- a/Mathlib/Algebra/Category/ModuleCat/Subobject.lean +++ b/Mathlib/Algebra/Category/ModuleCat/Subobject.lean @@ -35,7 +35,6 @@ namespace ModuleCat variable {R : Type u} [Ring R] (M : ModuleCat.{v} R) -set_option backward.isDefEq.respectTransparency false in /-- The categorical subobjects of a module `M` are in one-to-one correspondence with its submodules. -/ noncomputable def subobjectModule : Subobject M ≃o Submodule R M := @@ -81,7 +80,6 @@ noncomputable def toKernelSubobject {M N : ModuleCat.{v} R} {f : M ⟶ N} : LinearMap.ker f.hom →ₗ[R] kernelSubobject f := (kernelSubobjectIso f ≪≫ ModuleCat.kernelIsoKer f).inv.hom -set_option backward.isDefEq.respectTransparency false in @[simp] theorem toKernelSubobject_arrow {M N : ModuleCat R} {f : M ⟶ N} (x : LinearMap.ker f.hom) : (kernelSubobject f).arrow (toKernelSubobject x) = x.1 := by diff --git a/Mathlib/Algebra/Category/ModuleCat/Topology/Homology.lean b/Mathlib/Algebra/Category/ModuleCat/Topology/Homology.lean index ed357a7bd341df..a280a5ef7987a9 100644 --- a/Mathlib/Algebra/Category/ModuleCat/Topology/Homology.lean +++ b/Mathlib/Algebra/Category/ModuleCat/Topology/Homology.lean @@ -34,17 +34,14 @@ variable {M N : TopModuleCat.{v} R} (φ : M ⟶ N) section kernel -set_option backward.isDefEq.respectTransparency false in /-- Kernel in `TopModuleCat R` is the kernel of the linear map with the subspace topology. -/ abbrev ker : TopModuleCat R := .of R φ.hom.ker -set_option backward.isDefEq.respectTransparency false in /-- The inclusion map from the kernel in `TopModuleCat R`. -/ def kerι : ker φ ⟶ M := ofHom ⟨Submodule.subtype _, continuous_subtype_val⟩ instance : Mono (kerι φ) := ConcreteCategory.mono_of_injective (kerι φ) <| Subtype.val_injective -set_option backward.isDefEq.respectTransparency false in @[simp] lemma kerι_comp : kerι φ ≫ φ = 0 := by ext ⟨_, hm⟩; exact hm @[simp] lemma kerι_apply (x) : kerι φ x = x.1 := rfl diff --git a/Mathlib/Algebra/DirectSum/LinearMap.lean b/Mathlib/Algebra/DirectSum/LinearMap.lean index 975a384b3b6791..4cb9d438df2c70 100644 --- a/Mathlib/Algebra/DirectSum/LinearMap.lean +++ b/Mathlib/Algebra/DirectSum/LinearMap.lean @@ -97,7 +97,6 @@ lemma trace_eq_zero_of_mapsTo_ne (h : IsInternal N) [IsNoetherian R M] diag_toMatrix_directSum_collectedBasis_eq_zero_of_mapsTo_ne h b σ hσ hf (by simp [s]), Pi.zero_apply, Finset.sum_const_zero] -set_option backward.isDefEq.respectTransparency false in /-- If `f` and `g` are commuting endomorphisms of a finite, free `R`-module `M`, such that `f` is triangularizable, then to prove that the trace of `g ∘ f` vanishes, it is sufficient to prove that the trace of `g` vanishes on each generalized eigenspace of `f`. -/ @@ -138,7 +137,6 @@ lemma mapsTo_biSup_of_mapsTo {ι : Type*} {N : ι → Submodule R M} end IsInternal -set_option backward.isDefEq.respectTransparency false in /-- The trace of an endomorphism of a direct sum is the sum of the traces on each component. Note that it is important the statement gives the user definitional control over `p` since the diff --git a/Mathlib/Algebra/DirectSum/Module.lean b/Mathlib/Algebra/DirectSum/Module.lean index 597e91f32d47f7..04926c31e07be6 100644 --- a/Mathlib/Algebra/DirectSum/Module.lean +++ b/Mathlib/Algebra/DirectSum/Module.lean @@ -496,7 +496,6 @@ theorem isInternal_ne_bot_iff {A : ι → Submodule R M} : IsInternal (fun i : {i // A i ≠ ⊥} ↦ A i) ↔ IsInternal A := by simp [isInternal_submodule_iff_iSupIndep_and_iSup_eq_top] -set_option backward.isDefEq.respectTransparency false in lemma isInternal_biSup_submodule_of_iSupIndep {A : ι → Submodule R M} (s : Set ι) (h : iSupIndep <| fun i : s ↦ A i) : IsInternal <| fun (i : s) ↦ (A i).comap (⨆ i ∈ s, A i).subtype := by diff --git a/Mathlib/Algebra/DualQuaternion.lean b/Mathlib/Algebra/DualQuaternion.lean index 315fe2d902afa4..c04f0414c7495e 100644 --- a/Mathlib/Algebra/DualQuaternion.lean +++ b/Mathlib/Algebra/DualQuaternion.lean @@ -96,7 +96,6 @@ theorem imK_snd_dualNumberEquiv (q : Quaternion (DualNumber R)) : (dualNumberEquiv q).snd.imK = q.imK.snd := rfl -set_option backward.isDefEq.respectTransparency false in @[simp] theorem fst_re_dualNumberEquiv_symm (d : DualNumber (Quaternion R)) : (dualNumberEquiv.symm d).re.fst = d.fst.re := diff --git a/Mathlib/Algebra/Homology/HomotopyCategory/HomComplexShift.lean b/Mathlib/Algebra/Homology/HomotopyCategory/HomComplexShift.lean index f27de7cacd1705..45034617f760ea 100644 --- a/Mathlib/Algebra/Homology/HomotopyCategory/HomComplexShift.lean +++ b/Mathlib/Algebra/Homology/HomotopyCategory/HomComplexShift.lean @@ -282,7 +282,6 @@ lemma leftUnshift_add {n' a : ℤ} (γ₁ γ₂ : Cochain (K⟦a⟧) L n') (n : change (leftShiftAddEquiv K L n a n' hn).symm (γ₁ + γ₂) = _ apply map_add -set_option backward.isDefEq.respectTransparency false in @[simp] lemma rightShift_smul (a n' : ℤ) (hn' : n' + a = n) (x : R) : (x • γ).rightShift a n' hn' = x • γ.rightShift a n' hn' := by diff --git a/Mathlib/Algebra/Homology/HomotopyCofiber.lean b/Mathlib/Algebra/Homology/HomotopyCofiber.lean index 58db5c89b1be1b..a1be484621a962 100644 --- a/Mathlib/Algebra/Homology/HomotopyCofiber.lean +++ b/Mathlib/Algebra/Homology/HomotopyCofiber.lean @@ -458,7 +458,6 @@ noncomputable def nullHomotopicMap : K.cylinder ⟶ K.cylinder := noncomputable def nullHomotopy : Homotopy (nullHomotopicMap K) 0 := Homotopy.nullHomotopy' _ -set_option backward.isDefEq.respectTransparency false in lemma inlX_nullHomotopy_f (i j : ι) (hij : c.Rel j i) : inlX K i j hij ≫ (nullHomotopicMap K).f j = inlX K i j hij ≫ (π K ≫ ι₀ K - 𝟙 _).f j := by diff --git a/Mathlib/Algebra/Homology/ShortComplex/ModuleCat.lean b/Mathlib/Algebra/Homology/ShortComplex/ModuleCat.lean index 2bc12348acf112..2fcf6ec474cc7d 100644 --- a/Mathlib/Algebra/Homology/ShortComplex/ModuleCat.lean +++ b/Mathlib/Algebra/Homology/ShortComplex/ModuleCat.lean @@ -206,14 +206,12 @@ variable {M : Type v} [AddCommGroup M] [Module R M] {N : Type v} [AddCommGroup N open CategoryTheory -set_option backward.isDefEq.respectTransparency false in /-- Given a linear map `f : M → N`, we can obtain a short complex `0 → ker(f) → M → N`. -/ abbrev LinearMap.shortComplexKer (f : M →ₗ[R] N) : ShortComplex (ModuleCat.{v} R) where f := ModuleCat.ofHom.{v} (LinearMap.ker f).subtype g := ModuleCat.ofHom.{v} f zero := by ext; simp -set_option backward.isDefEq.respectTransparency false in theorem LinearMap.shortExact_shortComplexKer {f : M →ₗ[R] N} (h : Function.Surjective f) : f.shortComplexKer.ShortExact where exact := (ShortComplex.ShortExact.moduleCat_exact_iff_function_exact _).mpr diff --git a/Mathlib/Algebra/Lie/TraceForm.lean b/Mathlib/Algebra/Lie/TraceForm.lean index ed87d4941099a0..6a8e14dfb61959 100644 --- a/Mathlib/Algebra/Lie/TraceForm.lean +++ b/Mathlib/Algebra/Lie/TraceForm.lean @@ -217,7 +217,6 @@ open TensorProduct variable [LieRing.IsNilpotent L] [IsDomain R] -set_option backward.isDefEq.respectTransparency false in lemma traceForm_eq_sum_genWeightSpaceOf [IsPrincipalIdealRing R] [Module.IsTorsionFree R M] [IsNoetherian R M] [IsTriangularizable R L M] (z : L) : traceForm R L M = @@ -408,7 +407,6 @@ namespace LieModule variable [Field K] [LieAlgebra K L] [Module K M] [LieModule K L M] [FiniteDimensional K M] variable [LieRing.IsNilpotent L] [LinearWeights K L M] [IsTriangularizable K L M] -set_option backward.isDefEq.respectTransparency false in lemma traceForm_eq_sum_finrank_nsmul_mul (x y : L) : traceForm K L M x y = ∑ χ : Weight K L M, finrank K (genWeightSpace M χ) • (χ x * χ y) := by have hxy : ∀ χ : Weight K L M, MapsTo (toEnd K L M x ∘ₗ toEnd K L M y) diff --git a/Mathlib/Algebra/Lie/Weights/Chain.lean b/Mathlib/Algebra/Lie/Weights/Chain.lean index 4b44e6dbc2408a..c252b53290b060 100644 --- a/Mathlib/Algebra/Lie/Weights/Chain.lean +++ b/Mathlib/Algebra/Lie/Weights/Chain.lean @@ -203,7 +203,6 @@ lemma trace_toEnd_genWeightSpaceChain_eq_zero | add => simp_all | smul => simp_all -set_option backward.isDefEq.respectTransparency false in /-- Given a (potential) root `α` relative to a Cartan subalgebra `H`, if we restrict to the ideal `I = corootSpace α` of `H` (informally, `I = ⁅H(α), H(-α)⁆`), we may find an integral linear combination between `α` and any weight `χ` of a representation. diff --git a/Mathlib/Algebra/Lie/Weights/Killing.lean b/Mathlib/Algebra/Lie/Weights/Killing.lean index 953138293f877c..b98e7034e4381f 100644 --- a/Mathlib/Algebra/Lie/Weights/Killing.lean +++ b/Mathlib/Algebra/Lie/Weights/Killing.lean @@ -100,7 +100,6 @@ variable [FiniteDimensional K L] (H : LieSubalgebra K L) [H.IsCartanSubalgebra] section variable [IsTriangularizable K H L] -set_option backward.isDefEq.respectTransparency false in /-- For any `α` and `β`, the corresponding root spaces are orthogonal with respect to the Killing form, provided `α + β ≠ 0`. -/ lemma killingForm_apply_eq_zero_of_mem_rootSpace_of_add_ne_zero {α β : H → K} {x y : L} diff --git a/Mathlib/Algebra/Module/FinitePresentation.lean b/Mathlib/Algebra/Module/FinitePresentation.lean index 9ea47051e5f46a..6d3d0331d80d68 100644 --- a/Mathlib/Algebra/Module/FinitePresentation.lean +++ b/Mathlib/Algebra/Module/FinitePresentation.lean @@ -210,7 +210,6 @@ lemma Module.FinitePresentation.fg_ker_iff [Module.FinitePresentation R M] Submodule.FG (LinearMap.ker l) ↔ Module.FinitePresentation R N := ⟨finitePresentation_of_surjective l hl, fun _ ↦ fg_ker l hl⟩ -set_option backward.isDefEq.respectTransparency false in lemma Module.finitePresentation_of_ker [Module.FinitePresentation R N] (l : M →ₗ[R] N) (hl : Function.Surjective l) [Module.FinitePresentation R (LinearMap.ker l)] : Module.FinitePresentation R M := by @@ -285,7 +284,6 @@ instance (priority := 900) of_subsingleton [Subsingleton M] : Module.FinitePresentation R M := .of_equiv (default : (Fin 0 → R) ≃ₗ[R] M) -set_option backward.isDefEq.respectTransparency false in variable (M N) in instance prod [Module.FinitePresentation R M] [Module.FinitePresentation R N] : Module.FinitePresentation R (M × N) := by @@ -330,7 +328,6 @@ lemma Module.FinitePresentation.trans (S : Type*) [CommRing S] [Algebra R S] simp only [f, LinearMap.ker_restrictScalars, ← Module.Finite.iff_fg] exact Module.Finite.trans S _ -set_option backward.isDefEq.respectTransparency false in open TensorProduct in instance {A} [CommRing A] [Algebra R A] [Module.FinitePresentation R M] : Module.FinitePresentation A (A ⊗[R] M) := by diff --git a/Mathlib/Algebra/Module/Injective.lean b/Mathlib/Algebra/Module/Injective.lean index 040cef53c5730f..7e157df954a9e4 100644 --- a/Mathlib/Algebra/Module/Injective.lean +++ b/Mathlib/Algebra/Module/Injective.lean @@ -402,7 +402,6 @@ protected theorem injective (h : Module.Baer R Q) : Module.Injective R Q where obtain ⟨h, H⟩ := Module.Baer.extension_property h i hi f exact ⟨h, DFunLike.congr_fun H⟩ -set_option backward.isDefEq.respectTransparency false in protected theorem of_injective [Small.{v} R] (inj : Module.Injective R Q) : Module.Baer R Q := by intro I g let eI := Shrink.linearEquiv R I diff --git a/Mathlib/Algebra/Module/Lattice.lean b/Mathlib/Algebra/Module/Lattice.lean index 75baa3ed570c40..21b18d9d9f0800 100644 --- a/Mathlib/Algebra/Module/Lattice.lean +++ b/Mathlib/Algebra/Module/Lattice.lean @@ -134,7 +134,6 @@ lemma _root_.Submodule.span_range_eq_top_of_injective_of_rank_le {M N : Type u} variable (K) {V : Type*} [AddCommGroup V] [Module K V] [Module R V] [IsScalarTower R K V] -set_option backward.isDefEq.respectTransparency false in /-- Any basis of an `R`-lattice in `V` defines a `K`-basis of `V`. -/ noncomputable def _root_.Module.Basis.extendOfIsLattice [IsFractionRing R K] {κ : Type*} {M : Submodule R V} [IsLattice K M] (b : Basis κ R M) : @@ -157,7 +156,6 @@ lemma _root_.Module.Basis.extendOfIsLattice_apply [IsFractionRing R K] {κ : Typ variable [IsDomain R] -set_option backward.isDefEq.respectTransparency false in /-- A finitely-generated `R`-submodule of `V` of rank at least the `K`-rank of `V` is a lattice. -/ lemma of_rank_le [Module.Finite K V] [IsFractionRing R K] {M : Submodule R V} @@ -168,7 +166,6 @@ lemma of_rank_le [Module.Finite K V] [IsFractionRing R K] {M : Submodule R V} variable [IsPrincipalIdealRing R] -set_option backward.isDefEq.respectTransparency false in /-- Any lattice over a PID is a free `R`-module. Note that under our conditions, `Module.IsTorsionFree R K` simply says that `algebraMap R K` is injective. -/ @@ -194,7 +191,6 @@ lemma finrank_of_pi {ι : Type*} [Fintype ι] [IsFractionRing R K] (M : Submodul [IsLattice K M] : Module.finrank R M = Fintype.card ι := Module.finrank_eq_of_rank_eq (IsLattice.rank_of_pi K M) -set_option backward.isDefEq.respectTransparency false in /-- The intersection of two lattices is a lattice. -/ instance inf [Module.Finite K V] [IsFractionRing R K] (M N : Submodule R V) [IsLattice K M] [IsLattice K N] : IsLattice K (M ⊓ N) where diff --git a/Mathlib/Algebra/Module/PID.lean b/Mathlib/Algebra/Module/PID.lean index 2efd59d5930f49..9a965d65d15378 100644 --- a/Mathlib/Algebra/Module/PID.lean +++ b/Mathlib/Algebra/Module/PID.lean @@ -64,7 +64,6 @@ open Submodule open UniqueFactorizationMonoid -set_option backward.isDefEq.respectTransparency false in theorem Submodule.isSemisimple_torsionBy_of_irreducible {a : R} (h : Irreducible a) : IsSemisimpleModule R (torsionBy R M a) := haveI := PrincipalIdealRing.isMaximal_of_irreducible h @@ -167,7 +166,6 @@ theorem exists_smul_eq_zero_and_mk_eq {z : M} (hz : Module.IsTorsionBy R M (p ^ open Finset Multiset -set_option backward.whnf.reducibleClassField false in set_option backward.isDefEq.respectTransparency false in omit dec in /-- A finitely generated `p ^ ∞`-torsion module over a PID is isomorphic to a direct sum of some @@ -232,7 +230,6 @@ theorem torsion_by_prime_power_decomposition (hM : Module.IsTorsion' M (Submonoi end PTorsion -set_option backward.isDefEq.respectTransparency false in /-- A finitely generated torsion module over a PID is isomorphic to a direct sum of some `R ⧸ R ∙ (p i ^ e i)` where the `p i ^ e i` are prime powers. -/ theorem equiv_directSum_of_isTorsion [h' : Module.Finite R M] (hM : Module.IsTorsion R M) : @@ -258,7 +255,6 @@ theorem equiv_directSum_of_isTorsion [h' : Module.Finite R M] (hM : Module.IsTor variable (R M) -set_option backward.isDefEq.respectTransparency false in /-- **Structure theorem of finitely generated modules over a PID** : A finitely generated module over a PID is isomorphic to the product of a free module and a direct sum of some `R ⧸ R ∙ (p i ^ e i)` where the `p i ^ e i` are prime powers. -/ diff --git a/Mathlib/Algebra/Module/SpanRank.lean b/Mathlib/Algebra/Module/SpanRank.lean index ccce93b0ee7b12..fe57567d2feac1 100644 --- a/Mathlib/Algebra/Module/SpanRank.lean +++ b/Mathlib/Algebra/Module/SpanRank.lean @@ -167,7 +167,6 @@ theorem exists_span_set_card_eq_spanRank (p : Submodule R M) : Set.range (fun (s : {s : Set M // span R s = p}) ↦ #s) := csInf_mem ⟨#p, ⟨⟨p, by simp⟩, rfl⟩⟩ exact ⟨s.1, ⟨hs, s.2⟩⟩ -set_option backward.isDefEq.respectTransparency false in /-- Constructs a generating set with cardinality equal to the `spanFinrank` of the submodule when the submodule is finitely generated. -/ theorem FG.exists_span_set_encard_eq_spanFinrank {p : Submodule R M} (h : p.FG) : diff --git a/Mathlib/Algebra/Module/Submodule/Defs.lean b/Mathlib/Algebra/Module/Submodule/Defs.lean index 8348fcab601a94..8d9c319b7e96f4 100644 --- a/Mathlib/Algebra/Module/Submodule/Defs.lean +++ b/Mathlib/Algebra/Module/Submodule/Defs.lean @@ -322,6 +322,7 @@ protected theorem neg_mem (hx : x ∈ p) : -x ∈ p := neg_mem hx /-- Reinterpret a submodule as an additive subgroup. -/ +@[reducible] def toAddSubgroup : AddSubgroup M := { p.toAddSubmonoid with neg_mem' := fun {_} => p.neg_mem } @@ -329,14 +330,12 @@ def toAddSubgroup : AddSubgroup M := theorem coe_toAddSubgroup : (p.toAddSubgroup : Set M) = p := rfl -@[simp] theorem mem_toAddSubgroup : x ∈ p.toAddSubgroup ↔ x ∈ p := Iff.rfl theorem toAddSubgroup_injective : Injective (toAddSubgroup : Submodule R M → AddSubgroup M) | _, _, h => SetLike.ext (SetLike.ext_iff.1 h :) -@[simp] theorem toAddSubgroup_inj : p.toAddSubgroup = p'.toAddSubgroup ↔ p = p' := toAddSubgroup_injective.eq_iff diff --git a/Mathlib/Algebra/Module/Submodule/Ker.lean b/Mathlib/Algebra/Module/Submodule/Ker.lean index cf684c7304b534..a9819a07f082b6 100644 --- a/Mathlib/Algebra/Module/Submodule/Ker.lean +++ b/Mathlib/Algebra/Module/Submodule/Ker.lean @@ -195,7 +195,6 @@ theorem ker_eq_bot {f : M →ₛₗ[τ₁₂] M₂} : ker f = ⊥ ↔ Injective @[deprecated (since := "2025-12-23")] alias _root_.LinearMapClass.ker_eq_bot := ker_eq_bot -set_option backward.isDefEq.respectTransparency false in @[simp] lemma injective_domRestrict_iff {f : M →ₛₗ[τ₁₂] M₂} {S : Submodule R M} : Injective (f.domRestrict S) ↔ S ⊓ LinearMap.ker f = ⊥ := by rw [← LinearMap.ker_eq_bot] @@ -209,7 +208,6 @@ set_option backward.isDefEq.respectTransparency false in rw [h] at this simpa [mk_eq_zero] using this -set_option backward.isDefEq.respectTransparency false in @[simp] theorem injective_restrict_iff_disjoint {p : Submodule R M} {f : M →ₗ[R] M} (hf : ∀ x ∈ p, f x ∈ p) : Injective (f.restrict hf) ↔ Disjoint p (ker f) := by diff --git a/Mathlib/Algebra/Module/Submodule/LinearMap.lean b/Mathlib/Algebra/Module/Submodule/LinearMap.lean index 26229b800aef89..68d86fc001983e 100644 --- a/Mathlib/Algebra/Module/Submodule/LinearMap.lean +++ b/Mathlib/Algebra/Module/Submodule/LinearMap.lean @@ -213,7 +213,6 @@ theorem restrict_apply {f : M →ₗ[R] M₁} {p : Submodule R M} {q : Submodule (hf : ∀ x ∈ p, f x ∈ q) (x : p) : f.restrict hf x = ⟨f x, hf x.1 x.2⟩ := rfl -set_option backward.isDefEq.respectTransparency false in lemma restrict_sub {R M M₁ : Type*} [Ring R] [AddCommGroup M] [AddCommGroup M₁] [Module R M] [Module R M₁] {p : Submodule R M} {q : Submodule R M₁} {f g : M →ₗ[R] M₁} diff --git a/Mathlib/Algebra/Module/Submodule/Union.lean b/Mathlib/Algebra/Module/Submodule/Union.lean index 2b3c1fca5ef70a..56916404bc4581 100644 --- a/Mathlib/Algebra/Module/Submodule/Union.lean +++ b/Mathlib/Algebra/Module/Submodule/Union.lean @@ -102,7 +102,6 @@ lemma Module.Dual.exists_forall_ne_zero_of_forall_exists obtain ⟨x, hx⟩ := Submodule.exists_forall_notMem_of_forall_ne_top p h exact ⟨x, by simpa [p] using hx⟩ -set_option backward.isDefEq.respectTransparency false in /-- A convenience variation of `Module.Dual.exists_forall_ne_zero_of_forall_exists` where we are concerned only about behaviour on a fixed submodule. -/ lemma Module.Dual.exists_forall_mem_ne_zero_of_forall_exists (p : Submodule K M) diff --git a/Mathlib/Algebra/Module/Torsion/Basic.lean b/Mathlib/Algebra/Module/Torsion/Basic.lean index 5dc4bbb8513b82..eb7c0f00b43ddb 100644 --- a/Mathlib/Algebra/Module/Torsion/Basic.lean +++ b/Mathlib/Algebra/Module/Torsion/Basic.lean @@ -624,7 +624,6 @@ namespace Submodule variable [CommRing R] [AddCommGroup M] [Module R M] -set_option backward.isDefEq.respectTransparency false in instance (I : Ideal R) : Module (R ⧸ I) (torsionBySet R M I) := -- Porting note: times out without the (R := R) Module.IsTorsionBySet.module <| torsionBySet_isTorsionBySet (R := R) I @@ -638,7 +637,6 @@ instance (I : Ideal R) {S : Type*} [SMul S R] [SMul S M] [IsScalarTower S R M] [IsScalarTower S R R] : IsScalarTower S (R ⧸ I) (torsionBySet R M I) := inferInstance -set_option backward.isDefEq.respectTransparency false in /-- The `a`-torsion submodule as an `(R ⧸ R ∙ a)`-module. -/ instance instModuleQuotientTorsionBy (a : R) : Module (R ⧸ R ∙ a) (torsionBy R M a) := Module.IsTorsionBySet.module <| diff --git a/Mathlib/Algebra/Module/ZLattice/Basic.lean b/Mathlib/Algebra/Module/ZLattice/Basic.lean index 0caf0441241bf3..8a355443e4c310 100644 --- a/Mathlib/Algebra/Module/ZLattice/Basic.lean +++ b/Mathlib/Algebra/Module/ZLattice/Basic.lean @@ -348,7 +348,6 @@ theorem fundamentalDomain_measurableSet [MeasurableSpace E] [OpensMeasurableSpac simp only [D, fundamentalDomain, Set.mem_Ico, Set.mem_setOf_eq, LinearEquiv.coe_coe, Set.mem_preimage, Basis.equivFun_apply, Set.mem_pi, Set.mem_univ, forall_true_left] -set_option backward.isDefEq.respectTransparency false in /-- For a ℤ-lattice `Submodule.span ℤ (Set.range b)`, proves that the set defined by `ZSpan.fundamentalDomain` is a fundamental domain. -/ protected theorem isAddFundamentalDomain [Finite ι] [MeasurableSpace E] [OpensMeasurableSpace E] @@ -364,7 +363,6 @@ protected theorem isAddFundamentalDomain' [Finite ι] [MeasurableSpace E] [Opens IsAddFundamentalDomain (span ℤ (Set.range b)).toAddSubgroup (fundamentalDomain b) μ := ZSpan.isAddFundamentalDomain b μ -set_option backward.isDefEq.respectTransparency false in theorem measure_fundamentalDomain_ne_zero [Finite ι] [MeasurableSpace E] [BorelSpace E] {μ : Measure E} [Measure.IsAddHaarMeasure μ] : μ (fundamentalDomain b) ≠ 0 := by @@ -514,14 +512,12 @@ instance instModuleFinite_of_discrete_submodule {E : Type*} [NormedAddCommGroup Submodule.map_top, range_subtype, h_img]⟩ exact ZLattice.module_finite ℝ L₀ -set_option backward.isDefEq.respectTransparency false in theorem ZLattice.module_free [IsZLattice K L] : Module.Free ℤ L := by have : Module.Finite ℤ L := module_finite K L have : Module ℚ E := Module.compHom E (algebraMap ℚ K) have : IsAddTorsionFree E := .of_module_rat _ infer_instance -set_option backward.isDefEq.respectTransparency false in instance instModuleFree_of_discrete_submodule {E : Type*} [NormedAddCommGroup E] [NormedSpace ℝ E] [FiniteDimensional ℝ E] (L : Submodule ℤ E) [DiscreteTopology L] : Module.Free ℤ L := by @@ -529,7 +525,6 @@ instance instModuleFree_of_discrete_submodule {E : Type*} [NormedAddCommGroup E] have : IsAddTorsionFree E := .of_module_rat _ infer_instance -set_option backward.isDefEq.respectTransparency false in theorem ZLattice.rank [hs : IsZLattice K L] : finrank ℤ L = finrank K E := by classical have : Module.Finite ℤ L := module_finite K L @@ -616,7 +611,6 @@ variable {ι : Type*} [hs : IsZLattice K L] (b : Basis ι ℤ L) namespace Module.Basis -set_option backward.isDefEq.respectTransparency false in /-- Any `ℤ`-basis of `L` is also a `K`-basis of `E`. -/ def ofZLatticeBasis : Basis ι K E := by have : Module.Finite ℤ L := ZLattice.module_finite K L @@ -628,12 +622,10 @@ def ofZLatticeBasis : Basis ι K E := by range_subtype, top_le_iff, hs.span_top] · rw [← Fintype.card_congr e, ← finrank_eq_card_chooseBasisIndex, ZLattice.rank K L] -set_option backward.isDefEq.respectTransparency false in @[simp] theorem ofZLatticeBasis_apply (i : ι) : b.ofZLatticeBasis K L i = b i := by simp [Basis.ofZLatticeBasis] -set_option backward.isDefEq.respectTransparency false in @[simp] theorem ofZLatticeBasis_repr_apply (x : L) (i : ι) : (b.ofZLatticeBasis K L).repr x i = b.repr x i := by @@ -645,7 +637,6 @@ theorem ofZLatticeBasis_repr_apply (x : L) (i : ι) : LinearEquiv.coe_coe, coe_subtype, ← b.ofZLatticeBasis_apply K, repr_self, Finsupp.mapRange.linearMap_apply, Finsupp.mapRange_single, Algebra.linearMap_apply, map_one] -set_option backward.isDefEq.respectTransparency false in theorem ofZLatticeBasis_span : span ℤ (Set.range (b.ofZLatticeBasis K)) = L := by calc span ℤ (Set.range (b.ofZLatticeBasis K)) _ = span ℤ (L.subtype '' Set.range b) := by congr; ext; simp @@ -662,7 +653,6 @@ theorem ZLattice.isAddFundamentalDomain {E : Type*} [NormedAddCommGroup E] [Norm convert ZSpan.isAddFundamentalDomain (b.ofZLatticeBasis ℝ) μ all_goals exact (b.ofZLatticeBasis_span ℝ).symm -set_option backward.isDefEq.respectTransparency false in instance instCountable_of_discrete_submodule {E : Type*} [NormedAddCommGroup E] [NormedSpace ℝ E] [FiniteDimensional ℝ E] (L : Submodule ℤ E) [DiscreteTopology L] [IsZLattice ℝ L] : Countable L := by @@ -694,7 +684,6 @@ section Basis variable {ι : Type*} [Fintype ι] (L : Submodule ℤ (ι → ℝ)) [DiscreteTopology L] [IsZLattice ℝ L] -set_option backward.isDefEq.respectTransparency false in /-- Return an arbitrary `ℤ`-basis of a lattice `L` of `ι → ℝ` indexed by `ι`. -/ @@ -794,7 +783,6 @@ variable {F : Type*} [NormedAddCommGroup F] [NormedSpace K F] [FiniteDimensional [ProperSpace F] variable (L : Submodule ℤ E) [DiscreteTopology L] [IsZLattice K L] -set_option backward.isDefEq.respectTransparency false in theorem Module.Basis.ofZLatticeBasis_comap (e : F ≃L[K] E) {ι : Type*} (b : Basis ι ℤ L) : (b.ofZLatticeComap K L e.toLinearEquiv).ofZLatticeBasis K (ZLattice.comap K L e.toLinearMap) = (b.ofZLatticeBasis K L).map e.symm.toLinearEquiv := by @@ -803,7 +791,6 @@ theorem Module.Basis.ofZLatticeBasis_comap (e : F ≃L[K] E) {ι : Type*} (b : B end NormedLinearOrderedField_comap -set_option backward.isDefEq.respectTransparency false in /-- If `f` is periodic wrt a ℤ-lattice, then the range of `f` is compact. -/ lemma IsZLattice.isCompact_range_of_periodic {E F : Type*} [NormedAddCommGroup E] [NormedSpace ℝ E] [FiniteDimensional ℝ E] diff --git a/Mathlib/Algebra/Module/ZLattice/Covolume.lean b/Mathlib/Algebra/Module/ZLattice/Covolume.lean index 69430f7054a61a..6aa81b7721498f 100644 --- a/Mathlib/Algebra/Module/ZLattice/Covolume.lean +++ b/Mathlib/Algebra/Module/ZLattice/Covolume.lean @@ -88,7 +88,6 @@ theorem covolume_eq_measure_fundamentalDomain {F : Set E} (h : IsAddFundamentalD have : VAddInvariantMeasure L E μ := (inferInstance : VAddInvariantMeasure L.toAddSubgroup E μ) exact congr_arg ENNReal.toReal (h.covolume_eq_volume μ) -set_option backward.isDefEq.respectTransparency false in set_option backward.privateInPublic true in theorem covolume_ne_zero : covolume L μ ≠ 0 := by rw [covolume_eq_measure_fundamentalDomain L μ (isAddFundamentalDomain (Free.chooseBasis ℤ L) μ), @@ -100,7 +99,6 @@ set_option backward.privateInPublic true in theorem covolume_pos : 0 < covolume L μ := lt_of_le_of_ne ENNReal.toReal_nonneg (covolume_ne_zero L μ).symm -set_option backward.isDefEq.respectTransparency false in set_option backward.privateInPublic true in theorem covolume_comap {F : Type*} [NormedAddCommGroup F] [NormedSpace ℝ F] [FiniteDimensional ℝ F] [MeasurableSpace F] [BorelSpace F] (ν : Measure F := by volume_tac) [Measure.IsAddHaarMeasure ν] @@ -134,7 +132,6 @@ theorem covolume_eq_det {ι : Type*} [Fintype ι] [DecidableEq ι] (L : Submodul ext1 exact b.ofZLatticeBasis_apply ℝ L _ -set_option backward.isDefEq.respectTransparency false in theorem covolume_eq_det_inv {ι : Type*} [Fintype ι] (L : Submodule ℤ (ι → ℝ)) [DiscreteTopology L] [IsZLattice ℝ L] (b : Basis ι ℤ L) : covolume L = |(LinearEquiv.det (b.ofZLatticeBasis ℝ L).equivFun : ℝ)|⁻¹ := by @@ -144,7 +141,6 @@ theorem covolume_eq_det_inv {ι : Type*} [Fintype ι] (L : Submodule ℤ (ι → IsUnit.unit_spec, ← Basis.det_basis, LinearEquiv.coe_det] rfl -set_option backward.isDefEq.respectTransparency false in /-- Let `L₁` be a sub-`ℤ`-lattice of `L₂`. Then the index of `L₁` inside `L₂` is equal to `covolume L₁ / covolume L₂`. @@ -324,7 +320,6 @@ theorem tendsto_card_div_pow (b : Basis ι ℤ L) {s : Set (ι → ℝ)} (hs₁ ENNReal.toReal_ofReal (covolume_pos L volume).le] · rw [frontier_equivFun, volume_image_eq_volume_div_covolume, hs₃, ENNReal.zero_div] -set_option backward.isDefEq.respectTransparency false in theorem tendsto_card_le_div {X : Set (ι → ℝ)} (hX : ∀ ⦃x⦄ ⦃r : ℝ⦄, x ∈ X → 0 < r → r • x ∈ X) {F : (ι → ℝ) → ℝ} (h₁ : ∀ x ⦃r : ℝ⦄, 0 ≤ r → F (r • x) = r ^ card ι * (F x)) (h₂ : IsBounded {x ∈ X | F x ≤ 1}) (h₃ : MeasurableSet {x ∈ X | F x ≤ 1}) @@ -353,7 +348,6 @@ variable {E : Type*} [NormedAddCommGroup E] [InnerProductSpace ℝ E] [FiniteDim [MeasurableSpace E] [BorelSpace E] variable (L : Submodule ℤ E) [DiscreteTopology L] [IsZLattice ℝ L] -set_option backward.isDefEq.respectTransparency false in /-- A version of `ZLattice.covolume.tendsto_card_div_pow` for the `InnerProductSpace` case; see the `Naming convention` section in the introduction. -/ theorem tendsto_card_div_pow' {s : Set E} (hs₁ : IsBounded s) (hs₂ : MeasurableSet s) @@ -369,7 +363,6 @@ theorem tendsto_card_div_pow' {s : Set E} (hs₁ : IsBounded s) (hs₂ : Measura · rw [frontier_equivFun, volume_image_eq_volume_div_covolume', hs₃, ENNReal.zero_div] exact NullMeasurableSet.of_null hs₃ -set_option backward.isDefEq.respectTransparency false in /-- A version of `ZLattice.covolume.tendsto_card_le_div` for the `InnerProductSpace` case; see the `Naming convention` section in the introduction. -/ theorem tendsto_card_le_div' [Nontrivial E] {X : Set E} {F : E → ℝ} diff --git a/Mathlib/Algebra/Order/Group/PartialSups.lean b/Mathlib/Algebra/Order/Group/PartialSups.lean index b4afcb06ce2c2c..4fc60bf0c5403f 100644 --- a/Mathlib/Algebra/Order/Group/PartialSups.lean +++ b/Mathlib/Algebra/Order/Group/PartialSups.lean @@ -18,7 +18,6 @@ variable {α ι : Type*} variable [SemilatticeSup α] [Group α] [Preorder ι] [LocallyFiniteOrderBot ι] -set_option backward.isDefEq.respectTransparency false in @[to_additive] lemma partialSups_const_mul [MulLeftMono α] (f : ι → α) (c : α) (i : ι) : partialSups (c * f ·) i = c * partialSups f i := map_partialSups (OrderIso.mulLeft _) .. diff --git a/Mathlib/Algebra/Order/Interval/Basic.lean b/Mathlib/Algebra/Order/Interval/Basic.lean index a2ac88d45a9575..37f12f4894bb9a 100644 --- a/Mathlib/Algebra/Order/Interval/Basic.lean +++ b/Mathlib/Algebra/Order/Interval/Basic.lean @@ -641,7 +641,6 @@ theorem length_neg : ∀ s : Interval α, (-s).length = s.length | ⊥ => rfl | (s : NonemptyInterval α) => s.length_neg -set_option backward.isDefEq.respectTransparency false in theorem length_add_le : ∀ s t : Interval α, (s + t).length ≤ s.length + t.length | ⊥, _ => by simp | _, ⊥ => by simp diff --git a/Mathlib/Algebra/Order/Module/HahnEmbedding.lean b/Mathlib/Algebra/Order/Module/HahnEmbedding.lean index 647ec54b933fe0..efdec4b67e255e 100644 --- a/Mathlib/Algebra/Order/Module/HahnEmbedding.lean +++ b/Mathlib/Algebra/Order/Module/HahnEmbedding.lean @@ -772,7 +772,6 @@ theorem eval_lt [IsOrderedAddMonoid R] [Archimedean R] {x : M} (hx : x ∉ f.val exact (f.coeff_eq_of_mem y.val (by simp) hzy (by simp)).le exact hieq ▸ hi -set_option backward.isDefEq.respectTransparency false in /-- Extend `f` to a larger partial linear map by adding a new `x`. -/ noncomputable def extendFun [IsOrderedAddMonoid R] [Archimedean R] {x : M} (hx : x ∉ f.val.domain) : diff --git a/Mathlib/Algebra/Order/Ring/StandardPart.lean b/Mathlib/Algebra/Order/Ring/StandardPart.lean index 8cc23926055062..c556eda3d24a9a 100644 --- a/Mathlib/Algebra/Order/Ring/StandardPart.lean +++ b/Mathlib/Algebra/Order/Ring/StandardPart.lean @@ -58,7 +58,6 @@ namespace FiniteElement noncomputable instance : CommRing (FiniteElement K) := by unfold FiniteElement; infer_instance -set_option backward.isDefEq.respectTransparency false in instance : IsDomain (FiniteElement K) := by unfold FiniteElement; infer_instance diff --git a/Mathlib/Algebra/Polynomial/Degree/TrailingDegree.lean b/Mathlib/Algebra/Polynomial/Degree/TrailingDegree.lean index a70bc170e19337..86c2963278f7dd 100644 --- a/Mathlib/Algebra/Polynomial/Degree/TrailingDegree.lean +++ b/Mathlib/Algebra/Polynomial/Degree/TrailingDegree.lean @@ -94,7 +94,6 @@ theorem trailingDegree_eq_natTrailingDegree (hp : p ≠ 0) : trailingDegree p = (natTrailingDegree p : ℕ∞) := .symm <| ENat.coe_toNat <| mt trailingDegree_eq_top.1 hp -set_option backward.isDefEq.respectTransparency false in theorem trailingDegree_eq_iff_natTrailingDegree_eq {p : R[X]} {n : ℕ} (hp : p ≠ 0) : p.trailingDegree = n ↔ p.natTrailingDegree = n := by rw [trailingDegree_eq_natTrailingDegree hp, Nat.cast_inj] @@ -159,7 +158,6 @@ theorem trailingDegree_ne_of_natTrailingDegree_ne {n : ℕ} : p.natTrailingDegree ≠ n → trailingDegree p ≠ n := mt fun h => by rw [natTrailingDegree, h, ENat.toNat_coe] -set_option backward.isDefEq.respectTransparency false in theorem natTrailingDegree_le_of_trailingDegree_le {n : ℕ} {hp : p ≠ 0} (H : (n : ℕ∞) ≤ trailingDegree p) : n ≤ natTrailingDegree p := by rwa [trailingDegree_eq_natTrailingDegree hp, Nat.cast_le] at H diff --git a/Mathlib/Algebra/Star/CentroidHom.lean b/Mathlib/Algebra/Star/CentroidHom.lean index 7d80ae36ebdbc8..f9426a4854b033 100644 --- a/Mathlib/Algebra/Star/CentroidHom.lean +++ b/Mathlib/Algebra/Star/CentroidHom.lean @@ -61,7 +61,6 @@ instance instStarAddMonoidCenter : StarAddMonoid (Subsemiring.center (CentroidHo star_involutive f := SetCoe.ext (star_involutive f.val) star_add f g := SetCoe.ext (star_add f.val g.val) -set_option backward.isDefEq.respectTransparency false in instance : StarRing (Subsemiring.center (CentroidHom α)) where __ := instStarAddMonoidCenter star_mul f g := by diff --git a/Mathlib/AlgebraicGeometry/Fiber.lean b/Mathlib/AlgebraicGeometry/Fiber.lean index 2f021ec360d2d4..ea80f2171db8aa 100644 --- a/Mathlib/AlgebraicGeometry/Fiber.lean +++ b/Mathlib/AlgebraicGeometry/Fiber.lean @@ -58,7 +58,6 @@ lemma Scheme.Hom.fiberToSpecResidueField_apply (f : X ⟶ Y) (y : Y) (x : f.fibe Subsingleton.elim (α := PrimeSpectrum _) _ _ set_option backward.whnf.reducibleClassField false in -set_option backward.isDefEq.respectTransparency false in lemma isPullback_fiberToSpecResidueField_of_isPullback {P X Y Z : Scheme.{u}} {fst : P ⟶ X} {snd : P ⟶ Y} {f : X ⟶ Z} {g : Y ⟶ Z} (h : IsPullback fst snd f g) (y : Y) : IsPullback (pullback.map _ _ _ _ fst (Spec.map (g.residueFieldMap y)) g h.w.symm (by simp)) @@ -70,7 +69,6 @@ lemma isPullback_fiberToSpecResidueField_of_isPullback {P X Y Z : Scheme.{u}} {f · simpa using (IsPullback.of_hasPullback _ _).paste_horiz h · simp [Scheme.Hom.fiberToSpecResidueField] -set_option backward.isDefEq.respectTransparency false in /-- The morphism from the fiber of `Spec S ⟶ Spec R` at some prime `p` to `Spec κ(p)` is isomorphic to the map induced by `κ(p) ⟶ κ(p) ⊗[R] S`. -/ noncomputable def Spec.fiberToSpecResidueFieldIso (R S : Type u) [CommRing R] [CommRing S] diff --git a/Mathlib/AlgebraicGeometry/IdealSheaf/Subscheme.lean b/Mathlib/AlgebraicGeometry/IdealSheaf/Subscheme.lean index fe242476886e1a..41badf6aa6f078 100644 --- a/Mathlib/AlgebraicGeometry/IdealSheaf/Subscheme.lean +++ b/Mathlib/AlgebraicGeometry/IdealSheaf/Subscheme.lean @@ -659,7 +659,6 @@ abbrev Hom.image : Scheme.{u} := f.ker.subscheme /-- The embedding from the scheme-theoretic image to the codomain. -/ abbrev Hom.imageι : f.image ⟶ Y := f.ker.subschemeι -set_option backward.isDefEq.respectTransparency false in lemma ideal_ker_le_ker_ΓSpecIso_inv_comp : f.ker.ideal U ≤ RingHom.ker ((ΓSpecIso Γ(Y, ↑U)).inv ≫ (pullback.snd f U.1.ι ≫ U.1.toSpecΓ).appTop).hom := by diff --git a/Mathlib/AlgebraicGeometry/Morphisms/Affine.lean b/Mathlib/AlgebraicGeometry/Morphisms/Affine.lean index daa38a510bca6b..2ef75b5ce55e2b 100644 --- a/Mathlib/AlgebraicGeometry/Morphisms/Affine.lean +++ b/Mathlib/AlgebraicGeometry/Morphisms/Affine.lean @@ -86,7 +86,6 @@ instance {X : Scheme} (r : Γ(X, ⊤)) : lemma isRetrocompact_basicOpen (s : Γ(X, ⊤)) : IsRetrocompact (X := X) (X.basicOpen s) := IsRetrocompact_iff_isSpectralMap_subtypeVal.mpr (X.basicOpen s).ι.isSpectralMap -set_option backward.isDefEq.respectTransparency false in /-- Superseded by `isAffine_of_isAffineOpen_basicOpen`. -/ private lemma isAffine_of_isAffineOpen_basicOpen_aux (s : Set Γ(X, ⊤)) (hs : Ideal.span s = ⊤) (hs₂ : ∀ i ∈ s, IsAffineOpen (X.basicOpen i)) : @@ -106,7 +105,6 @@ private lemma isAffine_of_isAffineOpen_basicOpen_aux (s : Set Γ(X, ⊤)) · rw [← Opens.coe_inf, ← X.basicOpen_res _ (homOfLE le_top).op] exact (V.2.basicOpen _).isCompact -set_option backward.isDefEq.respectTransparency false in @[stacks 01QF] lemma isAffine_of_isAffineOpen_basicOpen (s : Set Γ(X, ⊤)) (hs : Ideal.span s = ⊤) (hs₂ : ∀ i ∈ s, IsAffineOpen (X.basicOpen i)) : @@ -132,7 +130,6 @@ lemma isAffine_of_isAffineOpen_basicOpen (s : Set Γ(X, ⊤)) convert isIso_ΓSpec_adjunction_unit_app_basicOpen i.1 using 0 exact congr(IsIso ((ΓSpec.adjunction.unit.app X).app $(by simp))) -set_option backward.isDefEq.respectTransparency false in /-- If `s` is a spanning set of `Γ(X, U)`, such that each `X.basicOpen i` is affine, then `U` is also affine. @@ -185,7 +182,6 @@ instance (priority := 100) isAffineHom_of_isAffine [IsAffine X] [IsAffine Y] : I lemma isAffine_of_isAffineHom [IsAffineHom f] [IsAffine Y] : IsAffine X := (HasAffineProperty.iff_of_isAffine (P := @IsAffineHom) (f := f)).mp inferInstance -set_option backward.isDefEq.respectTransparency false in lemma isAffineHom_of_forall_exists_isAffineOpen (H : ∀ x : Y, ∃ U : Y.Opens, x ∈ U ∧ IsAffineOpen U ∧ IsAffineOpen (f ⁻¹ᵁ U)) : IsAffineHom f := by @@ -204,7 +200,6 @@ instance {X Y S : Scheme} (f : X ⟶ S) (g : Y ⟶ S) [IsAffineHom g] [IsAffine letI : IsAffineHom (pullback.fst f g) := MorphismProperty.pullback_fst _ _ ‹_› isAffine_of_isAffineHom (pullback.fst f g) -set_option backward.isDefEq.respectTransparency false in instance {U V X : Scheme.{u}} (f : U ⟶ X) (g : V ⟶ X) [IsAffineHom f] [IsAffineHom g] : IsAffineHom (coprod.desc f g) := by refine ⟨fun W hW ↦ ?_⟩ @@ -268,7 +263,6 @@ lemma IsAffineOpen.isCompact_pullback_inf {X Y Z : Scheme.{u}} {f : X ⟶ Z} {g convert isCompact_range p.continuous simp [p, Scheme.Pullback.range_map] -set_option backward.isDefEq.respectTransparency false in lemma isIso_morphismRestrict_iff_isIso_app [IsAffineHom f] {U : Y.Opens} (hU : IsAffineOpen U) : IsIso (f ∣_ U) ↔ IsIso (f.app U) := by have : IsAffine U := hU diff --git a/Mathlib/AlgebraicGeometry/Morphisms/SmoothFiber.lean b/Mathlib/AlgebraicGeometry/Morphisms/SmoothFiber.lean index 1c1cd73be70a45..246eabc7614c1e 100644 --- a/Mathlib/AlgebraicGeometry/Morphisms/SmoothFiber.lean +++ b/Mathlib/AlgebraicGeometry/Morphisms/SmoothFiber.lean @@ -28,7 +28,6 @@ namespace AlgebraicGeometry variable {X Y : Scheme.{u}} (f : X ⟶ Y) -set_option backward.isDefEq.respectTransparency false in /-- If `f : X ⟶ Y` is locally of finite presentation, flat and has smooth fibers, then `f` is smooth. -/ lemma Smooth.of_smooth_fiberToSpecResidueField [LocallyOfFinitePresentation f] [Flat f] diff --git a/Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Basic.lean b/Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Basic.lean index a2eca72432a325..f1565891c0d8bf 100644 --- a/Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Basic.lean +++ b/Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Basic.lean @@ -407,7 +407,6 @@ def CStarAlgebra.spectralOrder : PartialOrder A where quasispectrumRestricts_iff_spectrumRestricts_inr' ℂ] at hxy hyz ⊢ exact ⟨by simpa using hyz.1.add hxy.1, by simpa using hyz.2.nnreal_add hyz.1 hxy.1 hxy.2⟩ -set_option backward.whnf.reducibleClassField false in set_option backward.isDefEq.respectTransparency false in variable (A) in /-- The `CStarAlgebra.spectralOrder` on a C⋆-algebra is a `StarOrderedRing`. -/ diff --git a/Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Order.lean b/Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Order.lean index 0add8ceb705083..ff56f4cf8b1f0d 100644 --- a/Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Order.lean +++ b/Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Order.lean @@ -61,7 +61,6 @@ theorem cfc_tsub {A : Type*} [TopologicalSpace A] [Ring A] [PartialOrder A] [Sta exact continuous_subtype_val.comp_continuousOn <| ContinuousOn.comp ‹_› continuous_real_toNNReal.continuousOn <| ha'.image ▸ Set.mapsTo_image .. -set_option backward.isDefEq.respectTransparency false in theorem cfcₙ_tsub {A : Type*} [TopologicalSpace A] [NonUnitalRing A] [PartialOrder A] [StarRing A] [StarOrderedRing A] [Module ℝ A] [IsScalarTower ℝ A A] [SMulCommClass ℝ A A] [IsTopologicalRing A] [T2Space A] [NonUnitalContinuousFunctionalCalculus ℝ A IsSelfAdjoint] @@ -90,7 +89,6 @@ noncomputable instance instPartialOrder : PartialOrder A⁺¹ := instance instStarOrderedRing : StarOrderedRing A⁺¹ := CStarAlgebra.spectralOrderedRing _ -set_option backward.isDefEq.respectTransparency false in lemma inr_le_iff (a b : A) (ha : IsSelfAdjoint a := by cfc_tac) (hb : IsSelfAdjoint b := by cfc_tac) : (a : A⁺¹) ≤ (b : A⁺¹) ↔ a ≤ b := by @@ -108,7 +106,6 @@ lemma inr_nonneg_iff {a : A} : 0 ≤ (a : A⁺¹) ↔ 0 ≤ a := by · exact isSelfAdjoint_inr (R := ℂ) |>.mp <| .of_nonneg h · exact .of_nonneg h -set_option backward.isDefEq.respectTransparency false in lemma nnreal_cfcₙ_eq_cfc_inr (a : A) (f : ℝ≥0 → ℝ≥0) (hf₀ : f 0 = 0 := by cfc_zero_tac) : cfcₙ f a = cfc f (a : A⁺¹) := cfcₙ_eq_cfc_inr inr_nonneg_iff .. @@ -180,14 +177,12 @@ lemma CStarAlgebra.star_mul_le_algebraMap_norm_sq {a : A} : end StarOrderedRing -set_option backward.isDefEq.respectTransparency false in lemma IsSelfAdjoint.toReal_spectralRadius_eq_norm {a : A} (ha : IsSelfAdjoint a) : (spectralRadius ℝ a).toReal = ‖a‖ := by simp [ha.spectrumRestricts.spectralRadius_eq, ha.spectralRadius_eq_nnnorm] namespace CStarAlgebra -set_option backward.isDefEq.respectTransparency false in lemma norm_or_neg_norm_mem_spectrum [Nontrivial A] {a : A} (ha : IsSelfAdjoint a := by cfc_tac) : ‖a‖ ∈ spectrum ℝ a ∨ -‖a‖ ∈ spectrum ℝ a := by have ha' : SpectrumRestricts a Complex.reCLM := ha.spectrumRestricts @@ -196,7 +191,6 @@ lemma norm_or_neg_norm_mem_spectrum [Nontrivial A] {a : A} variable [PartialOrder A] [StarOrderedRing A] -set_option backward.isDefEq.respectTransparency false in lemma nnnorm_mem_spectrum_of_nonneg [Nontrivial A] {a : A} (ha : 0 ≤ a := by cfc_tac) : ‖a‖₊ ∈ spectrum ℝ≥0 a := by have : IsSelfAdjoint a := .of_nonneg ha @@ -292,7 +286,6 @@ lemma CStarAlgebra.isUnit_of_le (a : A) {b : A} (hab : a ≤ b) peel h₀ with r hr _ exact this.trans hab -set_option backward.isDefEq.respectTransparency false in lemma le_iff_norm_sqrt_mul_rpow (a b : A) (ha : 0 ≤ a := by cfc_tac) (hb : IsStrictlyPositive b := by cfc_tac) : a ≤ b ↔ ‖sqrt a * (b : A) ^ (-(1 / 2) : ℝ)‖ ≤ 1 := by @@ -412,14 +405,12 @@ variable {A : Type*} [NonUnitalCStarAlgebra A] [PartialOrder A] [StarOrderedRing namespace CStarAlgebra -set_option backward.isDefEq.respectTransparency false in open ComplexOrder in instance instNonnegSpectrumClassComplexNonUnital : NonnegSpectrumClass ℂ A where quasispectrum_nonneg_of_nonneg a ha x hx := by rw [Unitization.quasispectrum_eq_spectrum_inr' ℂ ℂ a] at hx exact spectrum_nonneg_of_nonneg (Unitization.inr_nonneg_iff.mpr ha) hx -set_option backward.isDefEq.respectTransparency false in lemma norm_le_norm_of_nonneg_of_le {a b : A} (ha : 0 ≤ a := by cfc_tac) (hab : a ≤ b) : ‖a‖ ≤ ‖b‖ := by suffices ∀ a b : A⁺¹, 0 ≤ a → a ≤ b → ‖a‖ ≤ ‖b‖ by @@ -445,7 +436,6 @@ theorem nnnorm_le_nnnorm_of_nonneg_of_le {a : A} {b : A} (ha : 0 ≤ a := by cfc ‖a‖₊ ≤ ‖b‖₊ := norm_le_norm_of_nonneg_of_le ha hab -set_option backward.isDefEq.respectTransparency false in lemma star_left_conjugate_le_norm_smul {a b : A} (hb : IsSelfAdjoint b := by cfc_tac) : star a * b * a ≤ ‖b‖ • (star a * a) := by suffices ∀ a b : A⁺¹, IsSelfAdjoint b → star a * b * a ≤ ‖b‖ • (star a * a) by @@ -467,7 +457,6 @@ lemma star_right_conjugate_le_norm_smul {a b : A} (hb : IsSelfAdjoint b := by cf @[deprecated (since := "2025-10-20")] alias conjugate_le_norm_smul' := star_right_conjugate_le_norm_smul -set_option backward.isDefEq.respectTransparency false in /-- The set of nonnegative elements in a C⋆-algebra is closed. -/ lemma isClosed_nonneg : IsClosed {a : A | 0 ≤ a} := by suffices IsClosed {a : A⁺¹ | 0 ≤ a} by @@ -489,7 +478,6 @@ section Icc open Unitization Set Metric -set_option backward.isDefEq.respectTransparency false in lemma inr_mem_Icc_iff_norm_le {x : A} : (x : A⁺¹) ∈ Icc 0 1 ↔ 0 ≤ x ∧ ‖x‖ ≤ 1 := by simp only [mem_Icc, inr_nonneg_iff, and_congr_right_iff] diff --git a/Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean b/Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean index 0f31ff4afcb676..615d3890440f8d 100644 --- a/Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean +++ b/Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean @@ -202,7 +202,6 @@ end PosRealAction section RealAddAction -set_option backward.whnf.reducibleClassField false in instance : AddAction ℝ ℍ where vadd x z := mk (x + z) <| by simpa using z.im_pos zero_vadd _ := by simp [HVAdd.hVAdd] diff --git a/Mathlib/Analysis/Convex/Intrinsic.lean b/Mathlib/Analysis/Convex/Intrinsic.lean index 09b04d1d8795d6..14f5aa3e67192c 100644 --- a/Mathlib/Analysis/Convex/Intrinsic.lean +++ b/Mathlib/Analysis/Convex/Intrinsic.lean @@ -311,7 +311,6 @@ private theorem aux {α β : Type*} [TopologicalSpace α] [TopologicalSpace β] variable [NormedAddCommGroup V] [NormedSpace ℝ V] [FiniteDimensional ℝ V] {s : Set V} -set_option backward.isDefEq.respectTransparency false in /-- The intrinsic interior of a nonempty convex set is nonempty. -/ protected theorem Set.Nonempty.intrinsicInterior (hscv : Convex ℝ s) (hsne : s.Nonempty) : (intrinsicInterior ℝ s).Nonempty := by diff --git a/Mathlib/Analysis/InnerProductSpace/Basic.lean b/Mathlib/Analysis/InnerProductSpace/Basic.lean index 766902f83edf5e..a95d9fa0ba15c1 100644 --- a/Mathlib/Analysis/InnerProductSpace/Basic.lean +++ b/Mathlib/Analysis/InnerProductSpace/Basic.lean @@ -916,7 +916,6 @@ local notation "⟪" x ", " y "⟫" => inner 𝕜 x y since `𝕜` does not appear in the return type `Inner ℝ E`. -/ def Inner.rclikeToReal : Inner ℝ E where inner x y := re ⟪x, y⟫ -set_option backward.whnf.reducibleClassField false in /-- A general inner product space structure implies a real inner product structure. This is not registered as an instance since diff --git a/Mathlib/Analysis/InnerProductSpace/PiL2.lean b/Mathlib/Analysis/InnerProductSpace/PiL2.lean index c7d443374de325..f8d4d22b962e8a 100644 --- a/Mathlib/Analysis/InnerProductSpace/PiL2.lean +++ b/Mathlib/Analysis/InnerProductSpace/PiL2.lean @@ -1187,7 +1187,6 @@ noncomputable def LinearIsometry.extend (L : S →ₗᵢ[𝕜] V) : V →ₗᵢ[ { toLinearMap := M norm_map' := M_norm_map } -set_option backward.isDefEq.respectTransparency false in theorem LinearIsometry.extend_apply (L : S →ₗᵢ[𝕜] V) (s : S) : L.extend s = L s := by simp only [LinearIsometry.extend, ← LinearIsometry.coe_toLinearMap] simp only [add_eq_left, LinearIsometry.coe_toLinearMap, diff --git a/Mathlib/Analysis/InnerProductSpace/ProdL2.lean b/Mathlib/Analysis/InnerProductSpace/ProdL2.lean index 6151fe43713f85..ccb157e525112e 100644 --- a/Mathlib/Analysis/InnerProductSpace/ProdL2.lean +++ b/Mathlib/Analysis/InnerProductSpace/ProdL2.lean @@ -83,7 +83,6 @@ namespace Submodule variable (K : Submodule 𝕜 E) [K.HasOrthogonalProjection] (x : E) -set_option backward.isDefEq.respectTransparency false in /-- If a subspace `K` of an inner product space `E` admits an orthogonal projection, then `E` is isometrically isomorphic to the `L²` product of `K` and `Kᗮ`. -/ @[simps! symm_apply] @@ -95,7 +94,6 @@ def orthogonalDecomposition : E ≃ₗᵢ[𝕜] WithLp 2 (K × Kᗮ) where K.norm_sq_eq_add_norm_sq_projection] simp [starProjection_apply_eq_isComplProjection] -set_option backward.isDefEq.respectTransparency false in @[simp] theorem orthogonalDecomposition_apply : K.orthogonalDecomposition x = diff --git a/Mathlib/Analysis/InnerProductSpace/Projection/Basic.lean b/Mathlib/Analysis/InnerProductSpace/Projection/Basic.lean index b2870273babda1..ba54c4b4b01495 100644 --- a/Mathlib/Analysis/InnerProductSpace/Projection/Basic.lean +++ b/Mathlib/Analysis/InnerProductSpace/Projection/Basic.lean @@ -139,7 +139,6 @@ theorem orthogonalProjectionFn_norm_sq (v : E) : orthogonalProjectionFn_inner_eq_zero _ _ (orthogonalProjectionFn_mem v) convert norm_add_sq_eq_norm_sq_add_norm_sq_of_inner_eq_zero (v - p) p h' using 2 <;> simp -set_option backward.isDefEq.respectTransparency false in /-- The orthogonal projection onto a complete subspace. -/ def orthogonalProjection : E →L[𝕜] K := LinearMap.mkContinuous diff --git a/Mathlib/Analysis/InnerProductSpace/Projection/FiniteDimensional.lean b/Mathlib/Analysis/InnerProductSpace/Projection/FiniteDimensional.lean index d508b0c112a6ff..5bf40d464255a7 100644 --- a/Mathlib/Analysis/InnerProductSpace/Projection/FiniteDimensional.lean +++ b/Mathlib/Analysis/InnerProductSpace/Projection/FiniteDimensional.lean @@ -57,7 +57,6 @@ variable [FiniteDimensional 𝕜 K] theorem topologicalClosure_eq_self : K.topologicalClosure = K := K.closed_of_finiteDimensional.submodule_topologicalClosure_eq -set_option backward.isDefEq.respectTransparency false in @[simp] theorem det_reflection : LinearMap.det K.reflection.toLinearMap = (-1) ^ finrank 𝕜 Kᗮ := by by_cases hK : FiniteDimensional 𝕜 Kᗮ diff --git a/Mathlib/Analysis/InnerProductSpace/Projection/Submodule.lean b/Mathlib/Analysis/InnerProductSpace/Projection/Submodule.lean index 26181f4995d5f7..b1e411c8a0bdf2 100644 --- a/Mathlib/Analysis/InnerProductSpace/Projection/Submodule.lean +++ b/Mathlib/Analysis/InnerProductSpace/Projection/Submodule.lean @@ -166,7 +166,6 @@ theorem topologicalClosure_eq_top_iff [CompleteSpace E] : · rw [← Submodule.triorthogonal_eq_orthogonal, h, Submodule.top_orthogonal_eq_bot] · rw [h, Submodule.bot_orthogonal_eq_top] -set_option backward.isDefEq.respectTransparency false in theorem orthogonalProjection_apply_eq_linearProjOfIsCompl [K.HasOrthogonalProjection] (x : E) : K.orthogonalProjection x = K.linearProjOfIsCompl _ Submodule.isCompl_orthogonal_of_hasOrthogonalProjection x := by diff --git a/Mathlib/Analysis/InnerProductSpace/Semisimple.lean b/Mathlib/Analysis/InnerProductSpace/Semisimple.lean index 645d0477bee7b5..2bc142dee93cee 100644 --- a/Mathlib/Analysis/InnerProductSpace/Semisimple.lean +++ b/Mathlib/Analysis/InnerProductSpace/Semisimple.lean @@ -31,7 +31,6 @@ lemma orthogonalComplement_mem_invtSubmodule (hp : p ∈ T.invtSubmodule) : pᗮ ∈ T.invtSubmodule := fun x hx y hy ↦ hT y x ▸ hx (T y) (hp hy) -set_option backward.isDefEq.respectTransparency false in /-- Symmetric operators are semisimple on finite-dimensional subspaces. -/ theorem isFinitelySemisimple : T.IsFinitelySemisimple := by diff --git a/Mathlib/Analysis/InnerProductSpace/Subspace.lean b/Mathlib/Analysis/InnerProductSpace/Subspace.lean index 59c63653b60b4b..3f2223e5325732 100644 --- a/Mathlib/Analysis/InnerProductSpace/Subspace.lean +++ b/Mathlib/Analysis/InnerProductSpace/Subspace.lean @@ -250,7 +250,6 @@ local notation "⟪" x ", " y "⟫" => inner 𝕜 x y variable {ι : Type*} {G : ι → Type*} -set_option backward.isDefEq.respectTransparency false in /-- An orthogonal family forms an independent family of subspaces; that is, any collection of elements each from a different subspace in the family is linearly independent. In particular, the pairwise intersections of elements of the family are 0. -/ diff --git a/Mathlib/Analysis/InnerProductSpace/TensorProduct.lean b/Mathlib/Analysis/InnerProductSpace/TensorProduct.lean index bb877bfad0ce27..fd6bf324e45160 100644 --- a/Mathlib/Analysis/InnerProductSpace/TensorProduct.lean +++ b/Mathlib/Analysis/InnerProductSpace/TensorProduct.lean @@ -422,7 +422,6 @@ set_option backward.isDefEq.respectTransparency false in @[simp] lemma norm_assoc (x : E ⊗[𝕜] F ⊗[𝕜] G) : ‖TensorProduct.assoc 𝕜 E F G x‖ = ‖x‖ := assocIsometry 𝕜 E F G |>.norm_map x -set_option backward.isDefEq.respectTransparency false in @[simp] lemma nnnorm_assoc (x : E ⊗[𝕜] F ⊗[𝕜] G) : ‖TensorProduct.assoc 𝕜 E F G x‖₊ = ‖x‖₊ := assocIsometry 𝕜 E F G |>.nnnorm_map x diff --git a/Mathlib/Analysis/InnerProductSpace/l2Space.lean b/Mathlib/Analysis/InnerProductSpace/l2Space.lean index 8ec4ab17058f9d..a9ea606debc3ff 100644 --- a/Mathlib/Analysis/InnerProductSpace/l2Space.lean +++ b/Mathlib/Analysis/InnerProductSpace/l2Space.lean @@ -399,7 +399,6 @@ instance instFunLike : FunLike (HilbertBasis ι 𝕜 E) ι E where ext exact congr_fun h i -set_option backward.whnf.reducibleClassField false in @[simp] protected theorem repr_symm_single [DecidableEq ι] (b : HilbertBasis ι 𝕜 E) (i : ι) : b.repr.symm (lp.single 2 i (1 : 𝕜)) = b i := by diff --git a/Mathlib/Analysis/LocallyConvex/WeakDual.lean b/Mathlib/Analysis/LocallyConvex/WeakDual.lean index 91a26136f644be..1e4786e7d1c3cf 100644 --- a/Mathlib/Analysis/LocallyConvex/WeakDual.lean +++ b/Mathlib/Analysis/LocallyConvex/WeakDual.lean @@ -180,7 +180,6 @@ theorem mem_span_iff_bound {f : ι → E →ₗ[𝕜] 𝕜} (φ : E →ₗ[𝕜] variable [AddCommGroup F] [Module 𝕜 F] (B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜) -set_option backward.isDefEq.respectTransparency false in /-- The Weak Representation Theorem: Every continuous functional on `E` endowed with the `σ(E, F; B)`-topology is of the form `x ↦ B(x, y)` for some `y : F`. -/ theorem dualEmbedding_surjective : Function.Surjective (WeakBilin.eval B) := fun f ↦ by diff --git a/Mathlib/Analysis/LocallyConvex/WithSeminorms.lean b/Mathlib/Analysis/LocallyConvex/WithSeminorms.lean index 034fa105d386a6..4f7173b9a9d296 100644 --- a/Mathlib/Analysis/LocallyConvex/WithSeminorms.lean +++ b/Mathlib/Analysis/LocallyConvex/WithSeminorms.lean @@ -983,7 +983,6 @@ theorem Topology.IsInducing.polynormableSpace [PolynormableSpace 𝕜₂ F] PolynormableSpace 𝕜 E := hf.withSeminorms (PolynormableSpace.withSeminorms 𝕜₂ F) |>.toPolynormableSpace -set_option backward.isDefEq.respectTransparency false in instance [PolynormableSpace 𝕜₂ F] {S : Submodule 𝕜₂ F} : PolynormableSpace 𝕜₂ S := IsInducing.polynormableSpace (f := S.subtype) .subtypeVal diff --git a/Mathlib/Analysis/Matrix/HermitianFunctionalCalculus.lean b/Mathlib/Analysis/Matrix/HermitianFunctionalCalculus.lean index 56fa8f5c42a766..53c18c49d92b9f 100644 --- a/Mathlib/Analysis/Matrix/HermitianFunctionalCalculus.lean +++ b/Mathlib/Analysis/Matrix/HermitianFunctionalCalculus.lean @@ -135,12 +135,10 @@ protected noncomputable def cfc (f : ℝ → ℝ) : Matrix n n 𝕜 := conjStarAlgAut 𝕜 _ hA.eigenvectorUnitary (diagonal (RCLike.ofReal ∘ f ∘ hA.eigenvalues)) set_option backward.whnf.reducibleClassField false in -set_option backward.isDefEq.respectTransparency false in lemma cfcHom_eq_cfcAux : cfcHom hA.isSelfAdjoint = hA.cfcAux := cfcHom_eq_of_continuous_of_map_id hA hA.cfcAux hA.isClosedEmbedding_cfcAux.continuous hA.cfcAux_id -set_option backward.isDefEq.respectTransparency false in instance instContinuousFunctionalCalculusIsClosedEmbedding : ClosedEmbeddingContinuousFunctionalCalculus ℝ (Matrix n n 𝕜) IsSelfAdjoint where isClosedEmbedding _ hA := cfcHom_eq_cfcAux hA ▸ hA.isHermitian.isClosedEmbedding_cfcAux diff --git a/Mathlib/Analysis/Matrix/Normed.lean b/Mathlib/Analysis/Matrix/Normed.lean index b276630e80576b..a2948c699380bf 100644 --- a/Mathlib/Analysis/Matrix/Normed.lean +++ b/Mathlib/Analysis/Matrix/Normed.lean @@ -325,7 +325,6 @@ section NonUnitalSeminormedRing variable [NonUnitalSeminormedRing α] -set_option backward.isDefEq.respectTransparency false in theorem linfty_opNNNorm_mul (A : Matrix l m α) (B : Matrix m n α) : ‖A * B‖₊ ≤ ‖A‖₊ * ‖B‖₊ := by simp_rw [linfty_opNNNorm_def, Matrix.mul_apply] calc diff --git a/Mathlib/Analysis/Matrix/Order.lean b/Mathlib/Analysis/Matrix/Order.lean index 4bfd58faae5612..6dda18539fe821 100644 --- a/Mathlib/Analysis/Matrix/Order.lean +++ b/Mathlib/Analysis/Matrix/Order.lean @@ -174,7 +174,6 @@ set_option backward.isDefEq.respectTransparency false in @[deprecated CFC.sqrt_eq_zero_iff (since := "2025-09-22")] lemma sqrt_eq_zero_iff : CFC.sqrt A = 0 ↔ A = 0 := CFC.sqrt_eq_zero_iff A -set_option backward.isDefEq.respectTransparency false in @[deprecated CFC.sqrt_eq_one_iff (since := "2025-09-23")] lemma sqrt_eq_one_iff : CFC.sqrt A = 1 ↔ A = 1 := CFC.sqrt_eq_one_iff A diff --git a/Mathlib/Analysis/Normed/Affine/Isometry.lean b/Mathlib/Analysis/Normed/Affine/Isometry.lean index f4d4485c4c32c4..ec549fa8c0989e 100644 --- a/Mathlib/Analysis/Normed/Affine/Isometry.lean +++ b/Mathlib/Analysis/Normed/Affine/Isometry.lean @@ -840,7 +840,6 @@ theorem isometryEquivMap.coe_apply (φ : P₁' →ᵃⁱ[𝕜] P₂) (E : Affine (g : E) : ↑(E.isometryEquivMap φ g) = φ g := rfl -set_option backward.isDefEq.respectTransparency false in @[simp] theorem isometryEquivMap.toAffineMap_eq (φ : P₁' →ᵃⁱ[𝕜] P₂) (E : AffineSubspace 𝕜 P₁') [Nonempty E] : diff --git a/Mathlib/Analysis/Normed/Module/Basic.lean b/Mathlib/Analysis/Normed/Module/Basic.lean index a9ee3448c575b5..7c5606bd3db3f1 100644 --- a/Mathlib/Analysis/Normed/Module/Basic.lean +++ b/Mathlib/Analysis/Normed/Module/Basic.lean @@ -168,7 +168,6 @@ instance SeparationQuotient.instNormedSpace : NormedSpace 𝕜 (SeparationQuotie instance MulOpposite.instNormedSpace : NormedSpace 𝕜 Eᵐᵒᵖ where norm_smul_le _ x := norm_smul_le _ x.unop -set_option backward.isDefEq.respectTransparency false in /-- A subspace of a normed space is also a normed space, with the restriction of the norm. -/ instance Submodule.normedSpace {𝕜 R : Type*} [SMul 𝕜 R] [NormedField 𝕜] [Ring R] {E : Type*} [SeminormedAddCommGroup E] [NormedSpace 𝕜 E] [Module R E] [IsScalarTower 𝕜 R E] diff --git a/Mathlib/Analysis/Normed/Module/Complemented.lean b/Mathlib/Analysis/Normed/Module/Complemented.lean index 81dab8b60651de..5d5b9d5351d6cf 100644 --- a/Mathlib/Analysis/Normed/Module/Complemented.lean +++ b/Mathlib/Analysis/Normed/Module/Complemented.lean @@ -38,7 +38,6 @@ section variable [CompleteSpace 𝕜] -set_option backward.isDefEq.respectTransparency false in theorem ker_closedComplemented_of_finiteDimensional_range (f : E →L[𝕜] F) [FiniteDimensional 𝕜 f.range] : f.ker.ClosedComplemented := by set f' : E →L[𝕜] f.range := f.codRestrict _ (LinearMap.mem_range_self (f : E →ₗ[𝕜] F)) diff --git a/Mathlib/Analysis/Normed/Module/Connected.lean b/Mathlib/Analysis/Normed/Module/Connected.lean index 33ea545b239bfd..bdc874ff7c15c6 100644 --- a/Mathlib/Analysis/Normed/Module/Connected.lean +++ b/Mathlib/Analysis/Normed/Module/Connected.lean @@ -255,7 +255,6 @@ section variable {F : Type*} [AddCommGroup F] [Module ℝ F] [TopologicalSpace F] [IsTopologicalAddGroup F] [ContinuousSMul ℝ F] -set_option backward.isDefEq.respectTransparency false in /-- Let `E` be a linear subspace in a real vector space. If `E` has codimension at least two, its complement is path-connected. -/ theorem isPathConnected_compl_of_one_lt_codim {E : Submodule ℝ F} diff --git a/Mathlib/Analysis/Normed/Module/HahnBanach.lean b/Mathlib/Analysis/Normed/Module/HahnBanach.lean index 9c0e3d9ef33527..1d9d31eaec6787 100644 --- a/Mathlib/Analysis/Normed/Module/HahnBanach.lean +++ b/Mathlib/Analysis/Normed/Module/HahnBanach.lean @@ -126,7 +126,6 @@ lemma ContinuousLinearMap.exist_extension_of_finiteDimensional_range {p : Submod ext x simp [fi, e, hgf] -set_option backward.isDefEq.respectTransparency false in /-- A finite-dimensional submodule over `ℝ` or `ℂ` is `Submodule.ClosedComplemented`. -/ lemma Submodule.ClosedComplemented.of_finiteDimensional (p : Submodule 𝕜 F) [FiniteDimensional 𝕜 p] : p.ClosedComplemented := diff --git a/Mathlib/Analysis/Normed/Module/Span.lean b/Mathlib/Analysis/Normed/Module/Span.lean index d2ec11305eb102..f0bb564181ed2d 100644 --- a/Mathlib/Analysis/Normed/Module/Span.lean +++ b/Mathlib/Analysis/Normed/Module/Span.lean @@ -101,7 +101,6 @@ namespace LinearIsometryEquiv variable [NormedDivisionRing 𝕜] [SeminormedAddCommGroup E] [Module 𝕜 E] [NormSMulClass 𝕜 E] -set_option backward.isDefEq.respectTransparency false in /-- Given a unit element `x` of a normed space `E` over a field `𝕜`, the natural linear isometry equivalence from `𝕜` to the span of `x`. -/ noncomputable def toSpanUnitSingleton (x : E) (hx : ‖x‖ = 1) : diff --git a/Mathlib/Analysis/Normed/Operator/Extend.lean b/Mathlib/Analysis/Normed/Operator/Extend.lean index 49c365b2facdf4..d531d90d03b091 100644 --- a/Mathlib/Analysis/Normed/Operator/Extend.lean +++ b/Mathlib/Analysis/Normed/Operator/Extend.lean @@ -149,7 +149,6 @@ variable [DivisionRing 𝕜] [DivisionRing 𝕜₂] {σ₁₂ : 𝕜 →+* 𝕜 variable (f : E →ₛₗ[σ₁₂] F) (g : E →ₗ[𝕜] Eₗ) -set_option backward.isDefEq.respectTransparency false in open scoped Classical in /-- Composition of a semilinear map `f` with the left inverse of a linear map `g` as a continuous linear map provided that the norm estimate `‖f x‖ ≤ C * ‖g x‖` holds for all `x : E`. -/ diff --git a/Mathlib/Analysis/Normed/Operator/LinearIsometry.lean b/Mathlib/Analysis/Normed/Operator/LinearIsometry.lean index acc127fb8ec14e..7da83abfe03fff 100644 --- a/Mathlib/Analysis/Normed/Operator/LinearIsometry.lean +++ b/Mathlib/Analysis/Normed/Operator/LinearIsometry.lean @@ -378,7 +378,6 @@ variable {R R₁ R₂ M M₁ : Type*} variable [Ring R] [SeminormedAddCommGroup M] [SeminormedAddCommGroup M₁] variable [Module R M] [Module R M₁] -set_option backward.isDefEq.respectTransparency false in /-- A linear isometry between two modules restricts to a linear isometry from any submodule `p` of the domain onto the image of that submodule. @@ -403,7 +402,6 @@ namespace Submodule variable {R' : Type*} [Ring R'] [Module R' E] (p : Submodule R' E) -set_option backward.isDefEq.respectTransparency false in /-- `Submodule.subtype` as a `LinearIsometry`. -/ def subtypeₗᵢ : p →ₗᵢ[R'] E := ⟨p.subtype, fun _ => rfl⟩ @@ -412,12 +410,10 @@ def subtypeₗᵢ : p →ₗᵢ[R'] E := theorem coe_subtypeₗᵢ : ⇑p.subtypeₗᵢ = p.subtype := rfl -set_option backward.isDefEq.respectTransparency false in @[simp] theorem subtypeₗᵢ_toLinearMap : p.subtypeₗᵢ.toLinearMap = p.subtype := rfl -set_option backward.isDefEq.respectTransparency false in @[simp] theorem subtypeₗᵢ_toContinuousLinearMap : p.subtypeₗᵢ.toContinuousLinearMap = p.subtypeL := rfl @@ -1027,7 +1023,6 @@ theorem coe_prodAssoc_symm [Module R E₂] [Module R E₃] : ((prodAssoc R E E₂ E₃).symm : E × E₂ × E₃ → (E × E₂) × E₃) = (Equiv.prodAssoc E E₂ E₃).symm := rfl -set_option backward.isDefEq.respectTransparency false in /-- If `p` is a submodule that is equal to `⊤`, then `LinearIsometryEquiv.ofTop p hp` is the "identity" equivalence between `p` and `E`. -/ @[simps! toLinearEquiv apply symm_apply_coe] @@ -1037,7 +1032,6 @@ def ofTop {R : Type*} [Ring R] [Module R E] (p : Submodule R E) (hp : p = ⊤) : variable {R E E₂ E₃} {R' : Type*} [Ring R'] variable [Module R' E] (p q : Submodule R' E) -set_option backward.isDefEq.respectTransparency false in /-- `LinearEquiv.ofEq` as a `LinearIsometryEquiv`. -/ def ofEq (hpq : p = q) : p ≃ₗᵢ[R'] q := { LinearEquiv.ofEq p q hpq with norm_map' := fun _ => rfl } @@ -1048,12 +1042,10 @@ variable {p q} theorem coe_ofEq_apply (h : p = q) (x : p) : (ofEq p q h x : E) = x := rfl -set_option backward.isDefEq.respectTransparency false in @[simp] theorem ofEq_symm (h : p = q) : (ofEq p q h).symm = ofEq q p h.symm := rfl -set_option backward.isDefEq.respectTransparency false in @[simp] theorem ofEq_rfl : ofEq p p rfl = LinearIsometryEquiv.refl R' p := rfl @@ -1064,7 +1056,6 @@ variable [Ring R] [Ring R₂] [SeminormedAddCommGroup M] [SeminormedAddCommGroup variable [Module R M] [Module R₂ M₂] {σ₁₂ : R →+* R₂} {σ₂₁ : R₂ →+* R} variable {re₁₂ : RingHomInvPair σ₁₂ σ₂₁} {re₂₁ : RingHomInvPair σ₂₁ σ₁₂} -set_option backward.isDefEq.respectTransparency false in /-- A linear isometry equivalence between two modules restricts to a linear isometry equivalence from any submodule `p` of the domain onto the image of that submodule. @@ -1089,7 +1080,6 @@ theorem Module.Basis.ext_linearIsometryEquiv {ι : Type*} (b : Basis ι R E) {f (h : ∀ i, f₁ (b i) = f₂ (b i)) : f₁ = f₂ := LinearIsometryEquiv.toLinearEquiv_injective <| b.ext' h -set_option backward.isDefEq.respectTransparency false in /-- Reinterpret a `LinearIsometry` as a `LinearIsometryEquiv` to the range. -/ @[simps! apply_coe] noncomputable def LinearIsometry.equivRange {R S : Type*} [Semiring R] [Ring S] [Module S E] diff --git a/Mathlib/Analysis/ODE/PicardLindelof.lean b/Mathlib/Analysis/ODE/PicardLindelof.lean index 1c7c34993a9b6a..f6b62ce57e9463 100644 --- a/Mathlib/Analysis/ODE/PicardLindelof.lean +++ b/Mathlib/Analysis/ODE/PicardLindelof.lean @@ -656,7 +656,6 @@ lemma weaken_lipschitz (hf : IsPicardLindelof f t₀ x₀ a r L K) {K' : ℝ≥0 norm_le := hf.norm_le mul_max_le := hf.mul_max_le -set_option backward.isDefEq.respectTransparency false in /-- Given `IsPicardLindelof` on a symmetric interval `[t₀ - ε, t₀ + ε]`, if we shrink the radius from `a` to `a'` with `a' ≤ a`, and choose any `r' < a'`, then there exists `ε' > 0` such that `IsPicardLindelof` holds on `[t₀ - ε', t₀ + ε']` with the new parameters. -/ diff --git a/Mathlib/Analysis/SpecialFunctions/Elliptic/Weierstrass.lean b/Mathlib/Analysis/SpecialFunctions/Elliptic/Weierstrass.lean index 887731b608d81f..d42dd109fcb6be 100644 --- a/Mathlib/Analysis/SpecialFunctions/Elliptic/Weierstrass.lean +++ b/Mathlib/Analysis/SpecialFunctions/Elliptic/Weierstrass.lean @@ -156,7 +156,6 @@ def latticeBasis : Basis (Fin 2) ℤ L.lattice := def latticeEquivProd : L.lattice ≃ₗ[ℤ] ℤ × ℤ := L.latticeBasis.repr ≪≫ₗ Finsupp.linearEquivFunOnFinite _ _ _ ≪≫ₗ .finTwoArrow ℤ ℤ -set_option backward.isDefEq.respectTransparency false in lemma latticeEquiv_symm_apply (x : ℤ × ℤ) : (L.latticeEquivProd.symm x).1 = x.1 * L.ω₁ + x.2 * L.ω₂ := by simp [latticeEquivProd, Finsupp.linearCombination] @@ -248,7 +247,6 @@ lemma differentiableOn_weierstrassPExcept (l₀ : ℂ) : · simp · exact .sub (.div (by fun_prop) (by fun_prop) (by aesop (add simp sub_eq_zero))) (by fun_prop) -set_option backward.isDefEq.respectTransparency false in lemma weierstrassPExcept_neg (l₀ : ℂ) (z : ℂ) : ℘[L - l₀] (-z) = ℘[L - -l₀] z := by simp only [weierstrassPExcept] @@ -307,7 +305,6 @@ lemma differentiableOn_weierstrassP : convert L.differentiableOn_weierstrassPExcept _ simp [L.ω₁_div_two_notMem_lattice] -set_option backward.isDefEq.respectTransparency false in @[simp] lemma weierstrassP_neg (z : ℂ) : ℘[L] (-z) = ℘[L] z := by simp only [weierstrassP] @@ -434,7 +431,6 @@ end derivWeierstrassPExcept section Periodicity -set_option backward.isDefEq.respectTransparency false in lemma derivWeierstrassPExcept_add_coe (l₀ : ℂ) (z : ℂ) (l : L.lattice) : ℘'[L - l₀] (z + l) = ℘'[L - (l₀ - l)] z := by simp only [derivWeierstrassPExcept] @@ -563,7 +559,6 @@ lemma differentiableOn_derivWeierstrassP : convert L.differentiableOn_derivWeierstrassPExcept _ simp [L.ω₁_div_two_notMem_lattice] -set_option backward.isDefEq.respectTransparency false in @[simp] lemma derivWeierstrassP_neg (z : ℂ) : ℘'[L] (-z) = - ℘'[L] z := by simp only [derivWeierstrassP] @@ -573,7 +568,6 @@ lemma derivWeierstrassP_neg (z : ℂ) : ℘'[L] (-z) = - ℘'[L] z := by congr! with l ring -set_option backward.isDefEq.respectTransparency false in @[simp] lemma derivWeierstrassP_add_coe (z : ℂ) (l : L.lattice) : ℘'[L] (z + l) = ℘'[L] z := by @@ -955,7 +949,6 @@ def G (n : ℕ) : ℂ := ∑' l : L.lattice, (l ^ n)⁻¹ lemma sumInvPow_zero : L.sumInvPow 0 = L.G := by ext; simp [sumInvPow, G] -set_option backward.isDefEq.respectTransparency false in lemma G_eq_zero_of_odd (n : ℕ) (hn : Odd n) : L.G n = 0 := by rw [← CharZero.eq_neg_self_iff, G, ← tsum_neg, ← (Equiv.neg _).tsum_eq] congr with l diff --git a/Mathlib/Analysis/SpecialFunctions/Exp.lean b/Mathlib/Analysis/SpecialFunctions/Exp.lean index 8f0ba9147bdd03..2c930f7e77874f 100644 --- a/Mathlib/Analysis/SpecialFunctions/Exp.lean +++ b/Mathlib/Analysis/SpecialFunctions/Exp.lean @@ -121,7 +121,6 @@ theorem ContinuousOn.cexp (h : ContinuousOn f s) : ContinuousOn (fun y => exp (f theorem Continuous.cexp (h : Continuous f) : Continuous fun y => exp (f y) := continuous_iff_continuousAt.2 fun _ => h.continuousAt.cexp -set_option backward.isDefEq.respectTransparency false in /-- The complex exponential function is uniformly continuous on left half planes. -/ lemma UniformContinuousOn.cexp (a : ℝ) : UniformContinuousOn exp {x : ℂ | x.re ≤ a} := by have : Continuous (cexp - 1) := Continuous.sub (by fun_prop) continuous_one diff --git a/Mathlib/CategoryTheory/Bicategory/Functor/StrictlyUnitary.lean b/Mathlib/CategoryTheory/Bicategory/Functor/StrictlyUnitary.lean index 68db64fef309e6..725c25e7a34094 100644 --- a/Mathlib/CategoryTheory/Bicategory/Functor/StrictlyUnitary.lean +++ b/Mathlib/CategoryTheory/Bicategory/Functor/StrictlyUnitary.lean @@ -171,7 +171,6 @@ def comp (F : StrictlyUnitaryLaxFunctor B C) section attribute [local ext] StrictlyUnitaryLaxFunctor -set_option backward.isDefEq.respectTransparency false in /-- Composition of `StrictlyUnitaryLaxFunctor` is strictly right unitary -/ lemma comp_id (F : StrictlyUnitaryLaxFunctor B C) : F.comp (.id C) = F := by diff --git a/Mathlib/CategoryTheory/Bicategory/Grothendieck.lean b/Mathlib/CategoryTheory/Bicategory/Grothendieck.lean index e437f5c386a029..9d8c630450f7aa 100644 --- a/Mathlib/CategoryTheory/Bicategory/Grothendieck.lean +++ b/Mathlib/CategoryTheory/Bicategory/Grothendieck.lean @@ -374,7 +374,6 @@ lemma map_id_eq : map (𝟙 F) = 𝟭 (∫ᶜ F) := end -set_option backward.isDefEq.respectTransparency false in /-- The natural isomorphism witnessing the pseudo-functoriality of `CoGrothendieck.map`. -/ def mapCompIso (α : F ⟶ G) (β : G ⟶ H) : map (α ≫ β) ≅ map α ⋙ map β := NatIso.ofComponents (fun _ ↦ eqToIso (by cat_disch)) (fun f ↦ by diff --git a/Mathlib/CategoryTheory/Bicategory/Modification/Pseudo.lean b/Mathlib/CategoryTheory/Bicategory/Modification/Pseudo.lean index 92bfb391a3da94..acc58bde5d0dff 100644 --- a/Mathlib/CategoryTheory/Bicategory/Modification/Pseudo.lean +++ b/Mathlib/CategoryTheory/Bicategory/Modification/Pseudo.lean @@ -64,7 +64,6 @@ namespace Modification variable (Γ : Modification η θ) -set_option backward.isDefEq.respectTransparency false in /-- The modification between the corresponding strong transformation of the underlying oplax functors. -/ @[simps] diff --git a/Mathlib/CategoryTheory/Enriched/Ordinary/Basic.lean b/Mathlib/CategoryTheory/Enriched/Ordinary/Basic.lean index 245c5d38840f7d..8a763683680f46 100644 --- a/Mathlib/CategoryTheory/Enriched/Ordinary/Basic.lean +++ b/Mathlib/CategoryTheory/Enriched/Ordinary/Basic.lean @@ -227,7 +227,6 @@ def TransportEnrichment.ofOrdinaryEnrichedCategoryEquiv : TransportEnrichment F open EnrichedCategory -set_option backward.whnf.reducibleClassField false in set_option backward.isDefEq.respectTransparency false in /-- If for a lax monoidal functor `F : V ⥤ W` the canonical function `(𝟙_ V ⟶ v) → (𝟙_ W ⟶ F.obj v)` is bijective, and `C` is an enriched ordinary category on `V`, diff --git a/Mathlib/CategoryTheory/FiberedCategory/HasFibers.lean b/Mathlib/CategoryTheory/FiberedCategory/HasFibers.lean index 95ce828c874d32..729e23b0280e8f 100644 --- a/Mathlib/CategoryTheory/FiberedCategory/HasFibers.lean +++ b/Mathlib/CategoryTheory/FiberedCategory/HasFibers.lean @@ -135,7 +135,6 @@ noncomputable def Fib.homMk {S : 𝒮} {a b : Fib p S} (φ : (ι S).obj a ⟶ ( [IsHomLift p (𝟙 S) φ] : a ⟶ b := (inducedFunctor _ S).preimage (Fiber.homMk p S φ) -set_option backward.isDefEq.respectTransparency false in @[simp] lemma Fib.map_homMk {S : 𝒮} {a b : Fib p S} (φ : (ι S).obj a ⟶ (ι S).obj b) [IsHomLift p (𝟙 S) φ] : (ι S).map (homMk φ) = φ := by diff --git a/Mathlib/CategoryTheory/Join/Sum.lean b/Mathlib/CategoryTheory/Join/Sum.lean index b5bf9e693e58b4..8ac7ac99bcacd4 100644 --- a/Mathlib/CategoryTheory/Join/Sum.lean +++ b/Mathlib/CategoryTheory/Join/Sum.lean @@ -53,7 +53,6 @@ instance : (fromSum C D).EssSurj where | left c => Functor.obj_mem_essImage _ (Sum.inl c) | right d => Functor.obj_mem_essImage _ (Sum.inr d) -set_option backward.isDefEq.respectTransparency false in instance : (fromSum C D).Faithful where map_injective {x y} h h' heq := by cases h <;> cases h' diff --git a/Mathlib/CategoryTheory/Limits/Preserves/Bifunctor.lean b/Mathlib/CategoryTheory/Limits/Preserves/Bifunctor.lean index a685c31e2a294f..1d47d8d0519418 100644 --- a/Mathlib/CategoryTheory/Limits/Preserves/Bifunctor.lean +++ b/Mathlib/CategoryTheory/Limits/Preserves/Bifunctor.lean @@ -30,7 +30,6 @@ open Category Limits Functor variable {J₁ J₂ : Type*} [Category* J₁] [Category* J₂] {C₁ C₂ C : Type*} [Category* C₁] [Category* C₂] [Category* C] -set_option backward.isDefEq.respectTransparency false in /-- Given a bifunctor `G : C₁ ⥤ C₂ ⥤ C`, diagrams `K₁ : J₁ ⥤ C₁` and `K₂ : J₂ ⥤ C₂`, and cocones over these diagrams, `G.mapCocone₂ c₁ c₂` is the cocone over the diagram `J₁ × J₂ ⥤ C` obtained by applying `G` to both `c₁` and `c₂`. -/ diff --git a/Mathlib/CategoryTheory/Limits/Shapes/Pullback/Categorical/Basic.lean b/Mathlib/CategoryTheory/Limits/Shapes/Pullback/Categorical/Basic.lean index 4c3d79c52dca34..82f7fa6364c135 100644 --- a/Mathlib/CategoryTheory/Limits/Shapes/Pullback/Categorical/Basic.lean +++ b/Mathlib/CategoryTheory/Limits/Shapes/Pullback/Categorical/Basic.lean @@ -322,7 +322,6 @@ def toCatCommSqOver : (X ⥤ F ⊡ G) ⥤ CatCommSqOver F G X where map_id := by intros; ext <;> simp map_comp := by intros; ext <;> simp -set_option backward.isDefEq.respectTransparency false in /-- Interpret a `CatCommSqOver` as a functor to the categorical pullback. -/ @[simps!] def CatCommSqOver.toFunctorToCategoricalPullback : @@ -420,7 +419,6 @@ lemma toCatCommSqOver_mapIso_mkNatIso_eq_mkIso (by simpa [functorEquiv, toCatCommSqOver] using coh) := by ext <;> simp -set_option backward.isDefEq.respectTransparency false in /-- Comparing mkNatIso with the corresponding construction one can deduce from `functorEquiv`. -/ lemma mkNatIso_eq @@ -457,7 +455,6 @@ variable {A₁ : Type u₄} {B₁ : Type u₅} {C₁ : Type u₆} [Category.{v₄} A₁] [Category.{v₅} B₁] [Category.{v₆} C₁] {F₁ : A₁ ⥤ B₁} {G₁ : C₁ ⥤ B₁} -set_option backward.isDefEq.respectTransparency false in /-- Functorially transform a `CatCommSqOver F G X` by whiskering it with a `CatCospanTransform`. -/ @[simps!] @@ -503,7 +500,6 @@ variable {A₂ : Type u₇} {B₂ : Type u₈} {C₂ : Type u₉} [Category.{v₇} A₂] [Category.{v₈} B₂] [Category.{v₉} C₂] {F₂ : A₂ ⥤ B₂} {G₂ : C₂ ⥤ B₂} -set_option backward.isDefEq.respectTransparency false in /-- The construction `CatCommSqOver.transform` respects vertical composition of `CatCospanTransform`s. -/ @[simps!] @@ -516,7 +512,6 @@ def transformObjComp (X : Type u₁₀) [Category.{v₁₀} X] (Functor.associator _ _ _).symm) (fun {x y} f ↦ by ext <;> simp) -set_option backward.isDefEq.respectTransparency false in /-- The construction `CatCommSqOver.transform` respects the identity `CatCospanTransform`s. -/ @[simps!] @@ -592,7 +587,6 @@ variable {X : Type u₄} {Y : Type u₅} {Z : Type u₆} [Category.{v₄} X] [Category.{v₅} Y] [Category.{v₆} Z] -set_option backward.isDefEq.respectTransparency false in /-- A functor `U : X ⥤ Y` (functorially) induces a functor `CatCommSqOver F G Y ⥤ CatCommSqOver F G X` by whiskering left the underlying categorical commutative square by U. -/ diff --git a/Mathlib/CategoryTheory/Limits/Shapes/ZeroMorphisms.lean b/Mathlib/CategoryTheory/Limits/Shapes/ZeroMorphisms.lean index 9cd751f7699a6f..5e35a2aa24760e 100644 --- a/Mathlib/CategoryTheory/Limits/Shapes/ZeroMorphisms.lean +++ b/Mathlib/CategoryTheory/Limits/Shapes/ZeroMorphisms.lean @@ -165,7 +165,6 @@ theorem eq_zero_of_src {X Y : C} (o : IsZero X) (f : X ⟶ Y) : f = 0 := theorem eq_zero_of_tgt {X Y : C} (o : IsZero Y) (f : X ⟶ Y) : f = 0 := o.eq_of_tgt _ _ -set_option backward.whnf.reducibleClassField false in theorem iff_id_eq_zero (X : C) : IsZero X ↔ 𝟙 X = 0 := ⟨fun h => h.eq_of_src _ _, fun h => ⟨fun Y => ⟨⟨⟨0⟩, fun f => by diff --git a/Mathlib/CategoryTheory/Localization/Monoidal/Basic.lean b/Mathlib/CategoryTheory/Localization/Monoidal/Basic.lean index 00a1c9ebf884c0..d6250f253b9f38 100644 --- a/Mathlib/CategoryTheory/Localization/Monoidal/Basic.lean +++ b/Mathlib/CategoryTheory/Localization/Monoidal/Basic.lean @@ -108,7 +108,6 @@ local notation "L'" => toMonoidalCategory L W ε instance : (L').IsLocalization W := inferInstanceAs (L.IsLocalization W) -set_option backward.isDefEq.respectTransparency false in lemma isInvertedBy₂ : MorphismProperty.IsInvertedBy₂ W W (curriedTensor C ⋙ (Functor.whiskeringRight C C D).obj L') := by diff --git a/Mathlib/CategoryTheory/LocallyCartesianClosed/ExponentiableMorphism.lean b/Mathlib/CategoryTheory/LocallyCartesianClosed/ExponentiableMorphism.lean index 42981de6d5ea3f..bba1179297f966 100644 --- a/Mathlib/CategoryTheory/LocallyCartesianClosed/ExponentiableMorphism.lean +++ b/Mathlib/CategoryTheory/LocallyCartesianClosed/ExponentiableMorphism.lean @@ -152,7 +152,6 @@ section def id (I : C) [ChosenPullbacksAlong (𝟙 I)] : ExponentiableMorphism (𝟙 I) := ⟨𝟭 _, ofNatIsoLeft (F := 𝟭 _) Adjunction.id (pullbackId I).symm⟩ -set_option backward.whnf.reducibleClassField false in theorem id_pushforward (I : C) [ChosenPullbacksAlong (𝟙 I)] : (id I).pushforward = 𝟭 (Over I) := by dsimp +instances only [id] @@ -186,7 +185,6 @@ def comp {I J K : C} (f : I ⟶ J) (g : J ⟶ K) ofNatIsoLeft (pullbackPushforwardAdj g |>.comp <| pullbackPushforwardAdj f) (pullbackComp f g).symm⟩ -set_option backward.whnf.reducibleClassField false in theorem comp_pushforward {I J K : C} (f : I ⟶ J) (g : J ⟶ K) [ChosenPullbacksAlong f] [ChosenPullbacksAlong g] [ChosenPullbacksAlong (f ≫ g)] [ExponentiableMorphism f] [ExponentiableMorphism g] : diff --git a/Mathlib/CategoryTheory/Monoidal/Bimod.lean b/Mathlib/CategoryTheory/Monoidal/Bimod.lean index 214857e25294e0..13a83ac8f49a60 100644 --- a/Mathlib/CategoryTheory/Monoidal/Bimod.lean +++ b/Mathlib/CategoryTheory/Monoidal/Bimod.lean @@ -216,7 +216,6 @@ noncomputable def actLeft : R.X ⊗ X P Q ⟶ X P Q := slice_lhs 3 4 => rw [whisker_exchange] simp)) -set_option backward.isDefEq.respectTransparency false in theorem whiskerLeft_π_actLeft : (R.X ◁ coequalizer.π _ _) ≫ actLeft P Q = (α_ _ _ _).inv ≫ (P.actLeft ▷ Q.X) ≫ coequalizer.π _ _ := by diff --git a/Mathlib/CategoryTheory/Monoidal/Cartesian/Comon_.lean b/Mathlib/CategoryTheory/Monoidal/Cartesian/Comon_.lean index 6cfef3f013ab5f..8fdbd61387a90b 100644 --- a/Mathlib/CategoryTheory/Monoidal/Cartesian/Comon_.lean +++ b/Mathlib/CategoryTheory/Monoidal/Cartesian/Comon_.lean @@ -28,7 +28,6 @@ variable (C : Type u) [Category.{v} C] [CartesianMonoidalCategory C] attribute [local simp] leftUnitor_hom rightUnitor_hom -set_option backward.whnf.reducibleClassField false in /-- The functor from a Cartesian monoidal category to comonoids in that category, equipping every object with the diagonal map as a comultiplication. diff --git a/Mathlib/CategoryTheory/Monoidal/DayConvolution.lean b/Mathlib/CategoryTheory/Monoidal/DayConvolution.lean index 3865284cb2e5fb..412cddbdf552a7 100644 --- a/Mathlib/CategoryTheory/Monoidal/DayConvolution.lean +++ b/Mathlib/CategoryTheory/Monoidal/DayConvolution.lean @@ -1163,7 +1163,6 @@ lemma tensorHom_id {x x' : D} (f : x ⟶ x') (y : D) : f ⊗ₘ (𝟙 y) = f ▷ y := rfl -set_option backward.whnf.reducibleClassField false in set_option backward.isDefEq.respectTransparency false in lemma ι_map_tensorHom_eq {d₁ d₁' d₂ d₂' : D} (f : d₁ ⟶ d₂) (f' : d₁' ⟶ d₂') : letI := mkMonoidalCategoryStruct C V D diff --git a/Mathlib/CategoryTheory/Monoidal/Grp_.lean b/Mathlib/CategoryTheory/Monoidal/Grp_.lean index 128c50f943e185..75506fbaa2bbf9 100644 --- a/Mathlib/CategoryTheory/Monoidal/Grp_.lean +++ b/Mathlib/CategoryTheory/Monoidal/Grp_.lean @@ -186,7 +186,6 @@ theorem inv_comp_inv (A : C) [GrpObj A] : ι ≫ ι = 𝟙 A := by apply lift_left_mul_ext ι[A] rw [right_inv, ← comp_toUnit_assoc ι, ← left_inv, comp_lift_assoc, Category.comp_id] -set_option backward.whnf.reducibleClassField false in /-- Transfer `GrpObj` along an isomorphism. -/ -- Note: The simps lemmas are not tagged simp because their `#discr_tree_simp_key` are too generic. @[simps! -isSimp] diff --git a/Mathlib/CategoryTheory/Monoidal/Internal/Types/Basic.lean b/Mathlib/CategoryTheory/Monoidal/Internal/Types/Basic.lean index ea94ad40dd7329..4af2b8a22e647f 100644 --- a/Mathlib/CategoryTheory/Monoidal/Internal/Types/Basic.lean +++ b/Mathlib/CategoryTheory/Monoidal/Internal/Types/Basic.lean @@ -44,7 +44,6 @@ noncomputable def functor : Mon (Type u) ⥤ MonCat.{u} where map_one' := congr_fun (IsMonHom.one_hom f.hom) PUnit.unit map_mul' x y := congr_fun (IsMonHom.mul_hom f.hom) (x, y) } -set_option backward.whnf.reducibleClassField false in /-- Converting a bundled monoid to a monoid object in `Type`. -/ noncomputable def inverse : MonCat.{u} ⥤ Mon (Type u) where diff --git a/Mathlib/CategoryTheory/Shift/Localization.lean b/Mathlib/CategoryTheory/Shift/Localization.lean index 29bfc06775c410..7ac09cceef2265 100644 --- a/Mathlib/CategoryTheory/Shift/Localization.lean +++ b/Mathlib/CategoryTheory/Shift/Localization.lean @@ -279,7 +279,6 @@ noncomputable def commShift : G.CommShift M := by letI : Localization.Lifting L₁ W₁ (Φ.functor ⋙ L₂) G := ⟨e.symm⟩ exact Functor.commShiftOfLocalization L₁ W₁ M (Φ.functor ⋙ L₂) G -set_option backward.whnf.reducibleClassField false in set_option backward.isDefEq.respectTransparency false in @[reassoc] lemma commShift_iso_hom_app (m : M) (X : C₁) : @@ -291,7 +290,6 @@ lemma commShift_iso_hom_app (m : M) (X : C₁) : simp [Functor.commShiftOfLocalization_iso_hom_app, Functor.commShiftIso_comp_hom_app] -set_option backward.whnf.reducibleClassField false in set_option backward.isDefEq.respectTransparency false in @[reassoc] lemma commShift_iso_inv_app (m : M) (X : C₁) : diff --git a/Mathlib/CategoryTheory/ShrinkYoneda.lean b/Mathlib/CategoryTheory/ShrinkYoneda.lean index 452e593e54d18b..c5a87d33d2317c 100644 --- a/Mathlib/CategoryTheory/ShrinkYoneda.lean +++ b/Mathlib/CategoryTheory/ShrinkYoneda.lean @@ -71,7 +71,6 @@ noncomputable def shrinkYonedaObjObjEquiv {X : C} {Y : Cᵒᵖ} : ((shrinkYoneda.{w}.obj X).obj Y) ≃ (Y.unop ⟶ X) := (equivShrink _).symm -set_option backward.isDefEq.respectTransparency false in lemma shrinkYoneda_obj_map_shrinkYonedaObjObjEquiv_symm {X : C} {Y Y' : Cᵒᵖ} (g : Y ⟶ Y') (f : Y.unop ⟶ X) : (shrinkYoneda.obj _).map g (shrinkYonedaObjObjEquiv.symm f) = @@ -83,7 +82,6 @@ lemma shrinkYonedaObjObjEquiv_symm_comp {X Y Y' : C} (g : Y' ⟶ Y) (f : Y ⟶ X (shrinkYoneda.obj _).map g.op (shrinkYonedaObjObjEquiv.symm f) := (shrinkYoneda_obj_map_shrinkYonedaObjObjEquiv_symm g.op f).symm -set_option backward.isDefEq.respectTransparency false in lemma shrinkYoneda_map_app_shrinkYonedaObjObjEquiv_symm {X X' : C} {Y : Cᵒᵖ} (f : Y.unop ⟶ X) (g : X ⟶ X') : (shrinkYoneda.map g).app _ (shrinkYonedaObjObjEquiv.symm f) = diff --git a/Mathlib/CategoryTheory/Sites/DenseSubsite/Basic.lean b/Mathlib/CategoryTheory/Sites/DenseSubsite/Basic.lean index 5f42c3bc5584d4..0127ff2da1c9f6 100644 --- a/Mathlib/CategoryTheory/Sites/DenseSubsite/Basic.lean +++ b/Mathlib/CategoryTheory/Sites/DenseSubsite/Basic.lean @@ -745,7 +745,6 @@ lemma sheafifyHomEquivOfIsEquivalence_naturality_right variable (A) -set_option backward.isDefEq.respectTransparency false in /-- Assuming that `(C, J)` is a dense subsite of `(D, K)` (via a functor `G : C ⥤ D`) and `sheafPushforwardContinuous G A J K` is an equivalence of categories, and that `HasWeakSheafify J A` holds, then this adjunction shows the existence diff --git a/Mathlib/CategoryTheory/Sites/LocallySurjective.lean b/Mathlib/CategoryTheory/Sites/LocallySurjective.lean index f442d82101ee3f..ef26b78edf5ff8 100644 --- a/Mathlib/CategoryTheory/Sites/LocallySurjective.lean +++ b/Mathlib/CategoryTheory/Sites/LocallySurjective.lean @@ -461,7 +461,6 @@ lemma ofArrows_mem_iff_isLocallySurjective_cofanIsColimitDesc_shrinkYoneda_map exact Presheaf.imageSieve_mem J (Cofan.IsColimit.desc hc (fun i ↦ shrinkYoneda.{w}.map (f i))) (shrinkYonedaObjObjEquiv.symm (𝟙 S)) -set_option backward.isDefEq.respectTransparency false in lemma ofArrows_mem_iff_isLocallySurjective_cofanIsColimitDesc_uliftYoneda_map {S : C} {ι : Type*} [Small.{max w v} ι] {X : ι → C} (f : ∀ i, X i ⟶ S) diff --git a/Mathlib/CategoryTheory/Triangulated/Functor.lean b/Mathlib/CategoryTheory/Triangulated/Functor.lean index 151e8763d9e80b..c00413f92f1f17 100644 --- a/Mathlib/CategoryTheory/Triangulated/Functor.lean +++ b/Mathlib/CategoryTheory/Triangulated/Functor.lean @@ -78,7 +78,6 @@ section Additive variable [Preadditive C] [Preadditive D] [F.Additive] -set_option backward.isDefEq.respectTransparency false in /-- The functor `F.mapTriangle` commutes with the shift. -/ noncomputable def mapTriangleCommShiftIso (n : ℤ) : Triangle.shiftFunctor C n ⋙ F.mapTriangle ≅ F.mapTriangle ⋙ Triangle.shiftFunctor D n := diff --git a/Mathlib/Combinatorics/Additive/CauchyDavenport.lean b/Mathlib/Combinatorics/Additive/CauchyDavenport.lean index c31549aa2de418..ef89454ed7ee78 100644 --- a/Mathlib/Combinatorics/Additive/CauchyDavenport.lean +++ b/Mathlib/Combinatorics/Additive/CauchyDavenport.lean @@ -107,7 +107,6 @@ private lemma wellFoundedOn_devosMulRel : add_le_add ((card_le_card_mul_right hx.1.2).trans_eq hx.2) <| (card_le_card_mul_left hx.1.1).trans_eq hx.2 -set_option backward.isDefEq.respectTransparency false in /-- A generalisation of the **Cauchy-Davenport theorem** to arbitrary groups. The size of `s * t` is lower-bounded by `|s| + |t| - 1` unless this quantity is greater than the size of the smallest subgroup. -/ @@ -196,7 +195,6 @@ lemma cauchy_davenport_of_isMulTorsionFree [DecidableEq G] [Group G] [IsMulTorsi /-! ### $ℤ/nℤ$ -/ -set_option backward.isDefEq.respectTransparency false in /-- The **Cauchy-Davenport Theorem**. If `s`, `t` are nonempty sets in `ℤ/pℤ`, then the size of `s + t` is lower-bounded by `|s| + |t| - 1`, unless this quantity is greater than `p`. -/ lemma ZMod.cauchy_davenport {p : ℕ} (hp : p.Prime) {s t : Finset (ZMod p)} (hs : s.Nonempty) diff --git a/Mathlib/Combinatorics/Additive/DoublingConst.lean b/Mathlib/Combinatorics/Additive/DoublingConst.lean index 5d53bf1d31c0fa..e10a6b1d546b1e 100644 --- a/Mathlib/Combinatorics/Additive/DoublingConst.lean +++ b/Mathlib/Combinatorics/Additive/DoublingConst.lean @@ -141,13 +141,11 @@ lemma divConst_le_card : δₘ[A, B] ≤ #B := by section Fintype variable [Fintype G] -set_option backward.isDefEq.respectTransparency false in /-- Dense sets have small doubling. -/ @[to_additive addConst_le_inv_dens /-- Dense sets have small doubling. -/] lemma mulConst_le_inv_dens : σₘ[A, B] ≤ A.dens⁻¹ := by rw [dens, inv_div, mulConst]; gcongr; exact card_le_univ _ -set_option backward.isDefEq.respectTransparency false in /-- Dense sets have small difference constant. -/ @[to_additive subConst_le_inv_dens /-- Dense sets have small difference constant. -/] lemma divConst_le_inv_dens : δₘ[A, B] ≤ A.dens⁻¹ := by diff --git a/Mathlib/Combinatorics/Hall/Finite.lean b/Mathlib/Combinatorics/Hall/Finite.lean index 9ca804a778207b..f22ab42c5c95e5 100644 --- a/Mathlib/Combinatorics/Hall/Finite.lean +++ b/Mathlib/Combinatorics/Hall/Finite.lean @@ -50,7 +50,6 @@ section Fintype variable [Fintype ι] -set_option backward.isDefEq.respectTransparency false in theorem hall_cond_of_erase {x : ι} (a : α) (ha : ∀ s : Finset ι, s.Nonempty → s ≠ univ → #s < #(s.biUnion t)) (s' : Finset { x' : ι | x' ≠ x }) : #s' ≤ #(s'.biUnion fun x' => (t x').erase a) := by diff --git a/Mathlib/Combinatorics/Matroid/IndepAxioms.lean b/Mathlib/Combinatorics/Matroid/IndepAxioms.lean index 11d28e7e36d00d..8a09ca62ae8c32 100644 --- a/Mathlib/Combinatorics/Matroid/IndepAxioms.lean +++ b/Mathlib/Combinatorics/Matroid/IndepAxioms.lean @@ -383,7 +383,6 @@ instance ofBddAugment_rankFinite (E : Set α) Indep indep_empty indep_subset ind rw [IndepMatroid.ofBddAugment] infer_instance -set_option backward.isDefEq.respectTransparency false in /-- If `E` is finite, then any collection of subsets of `E` satisfying the usual independence axioms determines a matroid -/ protected def ofFinite {E : Set α} (hE : E.Finite) (Indep : Set α → Prop) diff --git a/Mathlib/Combinatorics/Matroid/Minor/Restrict.lean b/Mathlib/Combinatorics/Matroid/Minor/Restrict.lean index a370ad8dadfdf2..b7ec099d904cc6 100644 --- a/Mathlib/Combinatorics/Matroid/Minor/Restrict.lean +++ b/Mathlib/Combinatorics/Matroid/Minor/Restrict.lean @@ -463,7 +463,6 @@ theorem Indep.augment (hI : M.Indep I) (hJ : M.Indep J) (hIJ : I.encard < J.enca rw [← hJ'.encard_eq_encard hb] at hIJ exact hIJ.not_ge (encard_mono hJJ') -set_option backward.isDefEq.respectTransparency false in lemma Indep.augment_finset {I J : Finset α} (hI : M.Indep I) (hJ : M.Indep J) (hIJ : I.card < J.card) : ∃ e ∈ J, e ∉ I ∧ M.Indep (insert e I) := by obtain ⟨x, hx, hxI⟩ := hI.augment hJ (by simpa [encard_eq_coe_toFinset_card]) diff --git a/Mathlib/Combinatorics/SimpleGraph/Coloring.lean b/Mathlib/Combinatorics/SimpleGraph/Coloring.lean index 69f1b8e57e4eb0..d6ed1e4c632184 100644 --- a/Mathlib/Combinatorics/SimpleGraph/Coloring.lean +++ b/Mathlib/Combinatorics/SimpleGraph/Coloring.lean @@ -200,7 +200,6 @@ This is `⊤` (infinity) iff `G` isn't colorable with finitely many colors. If `G` is colorable, then `ENat.toNat G.chromaticNumber` is the `ℕ`-valued chromatic number. -/ noncomputable def chromaticNumber : ℕ∞ := ⨅ n ∈ setOf G.Colorable, (n : ℕ∞) -set_option backward.isDefEq.respectTransparency false in lemma le_chromaticNumber_iff_colorable : n ≤ G.chromaticNumber ↔ ∀ m, G.Colorable m → n ≤ m := by simp [chromaticNumber] @@ -314,7 +313,6 @@ theorem colorable_set_nonempty_of_colorable {n : ℕ} (hc : G.Colorable n) : theorem chromaticNumber_bddBelow : BddBelow { n : ℕ | G.Colorable n } := ⟨0, fun _ _ => zero_le _⟩ -set_option backward.isDefEq.respectTransparency false in theorem Colorable.chromaticNumber_le {n : ℕ} (hc : G.Colorable n) : G.chromaticNumber ≤ n := by rw [hc.chromaticNumber_eq_sInf] norm_cast @@ -339,7 +337,6 @@ theorem chromaticNumber_le_iff_colorable {n : ℕ} : G.chromaticNumber ≤ n ↔ rw [Set.mem_setOf_eq] at this exact this.mono h -set_option backward.isDefEq.respectTransparency false in /-- If the chromatic number of `G` is `n + 1`, then `G` is colorable in no fewer than `n + 1` colors. -/ theorem chromaticNumber_eq_iff_colorable_not_colorable : @@ -359,7 +356,6 @@ theorem colorable_chromaticNumber_of_fintype (G : SimpleGraph V) [Finite V] : cases nonempty_fintype V exact colorable_chromaticNumber G.colorable_of_fintype -set_option backward.isDefEq.respectTransparency false in theorem chromaticNumber_le_one_of_subsingleton (G : SimpleGraph V) [Subsingleton V] : G.chromaticNumber ≤ 1 := by rw [← Nat.cast_one, chromaticNumber_le_iff_colorable] @@ -368,7 +364,6 @@ theorem chromaticNumber_le_one_of_subsingleton (G : SimpleGraph V) [Subsingleton cases Subsingleton.elim v w simp -set_option backward.isDefEq.respectTransparency false in theorem chromaticNumber_pos [Nonempty V] {n : ℕ} (hc : G.Colorable n) : 0 < G.chromaticNumber := by rw [hc.chromaticNumber_eq_sInf, Nat.cast_pos] apply le_csInf (colorable_set_nonempty_of_colorable hc) @@ -385,7 +380,6 @@ theorem colorable_of_chromaticNumber_ne_top (h : G.chromaticNumber ≠ ⊤) : obtain ⟨n, hn⟩ := h exact colorable_chromaticNumber hn -set_option backward.isDefEq.respectTransparency false in theorem chromaticNumber_eq_zero_of_isEmpty [IsEmpty V] : G.chromaticNumber = 0 := by rw [← nonpos_iff_eq_zero, ← Nat.cast_zero, chromaticNumber_le_iff_colorable]; exact .of_isEmpty _ @@ -424,7 +418,6 @@ theorem chromaticNumber_mono_of_embedding {V' : Type*} {G' : SimpleGraph V'} (f : G ↪g G') : G.chromaticNumber ≤ G'.chromaticNumber := chromaticNumber_mono_of_hom f -set_option backward.isDefEq.respectTransparency false in lemma card_le_chromaticNumber_iff_forall_surjective [Fintype α] : card α ≤ G.chromaticNumber ↔ ∀ C : G.Coloring α, Surjective C := by refine ⟨fun h C ↦ ?_, fun h ↦ ?_⟩ @@ -475,7 +468,6 @@ theorem chromaticNumber_top_eq_top_of_infinite (V : Type*) [Infinite V] : obtain ⟨n, ⟨hn⟩⟩ := hc exact not_injective_infinite_finite _ hn.injective_of_top_hom -set_option backward.isDefEq.respectTransparency false in theorem eq_top_of_chromaticNumber_eq_card [Fintype V] (h : G.chromaticNumber = Fintype.card V) : G = ⊤ := by classical @@ -503,7 +495,6 @@ theorem two_le_chromaticNumber_of_adj {u v : V} (hadj : G.Adj u v) : 2 ≤ G.chr obtain ⟨c⟩ := chromaticNumber_le_iff_colorable.mp (Order.le_of_lt_add_one h) exact c.valid hadj (Subsingleton.elim (c u) (c v)) -set_option backward.isDefEq.respectTransparency false in theorem chromaticNumber_eq_one_iff : G.chromaticNumber = 1 ↔ G = ⊥ ∧ Nonempty V := by refine ⟨fun h ↦ ⟨?_, ?_⟩, fun ⟨h₁, _⟩ ↦ h₁ ▸ chromaticNumber_bot⟩ · contrapose! h @@ -571,7 +562,6 @@ protected theorem Colorable.cliqueFree {n m : ℕ} (hc : G.Colorable n) (hm : n obtain ⟨s, h, rfl⟩ := h exact Nat.lt_le_asymm hm (h.card_le_of_colorable hc) -set_option backward.isDefEq.respectTransparency false in theorem cliqueFree_of_chromaticNumber_lt {n : ℕ} (hc : G.chromaticNumber < n) : G.CliqueFree n := by have hne : G.chromaticNumber ≠ ⊤ := hc.ne_top @@ -582,7 +572,6 @@ theorem cliqueFree_of_chromaticNumber_lt {n : ℕ} (hc : G.chromaticNumber < n) rw [← hne] at hc simpa using hc -set_option backward.isDefEq.respectTransparency false in /-- Given a colouring `α` of `G`, and a clique of size at least the number of colours, the clique contains a vertex of each colour. diff --git a/Mathlib/Combinatorics/SimpleGraph/Connectivity/EdgeConnectivity.lean b/Mathlib/Combinatorics/SimpleGraph/Connectivity/EdgeConnectivity.lean index 8c8fea89bee1ea..21d32c54c68137 100644 --- a/Mathlib/Combinatorics/SimpleGraph/Connectivity/EdgeConnectivity.lean +++ b/Mathlib/Combinatorics/SimpleGraph/Connectivity/EdgeConnectivity.lean @@ -56,18 +56,15 @@ lemma IsEdgeReachable.trans (h1 : G.IsEdgeReachable k u v) (h2 : G.IsEdgeReachab lemma IsEdgeReachable.mono (hGH : G ≤ H) (h : G.IsEdgeReachable k u v) : H.IsEdgeReachable k u v := fun _ hk ↦ h hk |>.mono <| deleteEdges_mono hGH -set_option backward.isDefEq.respectTransparency false in @[gcongr] lemma IsEdgeReachable.anti (hkl : k ≤ l) (h : G.IsEdgeReachable l u v) : G.IsEdgeReachable k u v := fun _ hk ↦ h <| by grw [← hkl]; exact hk -set_option backward.isDefEq.respectTransparency false in @[simp] protected lemma IsEdgeReachable.zero : G.IsEdgeReachable 0 u v := by simp [IsEdgeReachable] @[simp] protected lemma IsEdgeConnected.zero : G.IsEdgeConnected 0 := fun _ _ ↦ .zero -set_option backward.isDefEq.respectTransparency false in @[simp] lemma isEdgeReachable_one : G.IsEdgeReachable 1 u v ↔ G.Reachable u v := by simp [IsEdgeReachable, ENat.lt_one_iff_eq_zero] diff --git a/Mathlib/Combinatorics/SimpleGraph/Connectivity/Subgraph.lean b/Mathlib/Combinatorics/SimpleGraph/Connectivity/Subgraph.lean index 16a5879a0ddfeb..b895b8fadb9bd8 100644 --- a/Mathlib/Combinatorics/SimpleGraph/Connectivity/Subgraph.lean +++ b/Mathlib/Combinatorics/SimpleGraph/Connectivity/Subgraph.lean @@ -241,7 +241,6 @@ theorem toSubgraph_reverse (p : G.Walk u v) : p.reverse.toSubgraph = p.toSubgrap congr ext <;> simp [-Set.bot_eq_empty] -set_option backward.isDefEq.respectTransparency false in @[simp] theorem toSubgraph_rotate [DecidableEq V] (c : G.Walk v v) (h : u ∈ c.support) : (c.rotate h).toSubgraph = c.toSubgraph := by diff --git a/Mathlib/Combinatorics/SimpleGraph/Girth.lean b/Mathlib/Combinatorics/SimpleGraph/Girth.lean index 2e859cfc1b8b69..3df2237596b69f 100644 --- a/Mathlib/Combinatorics/SimpleGraph/Girth.lean +++ b/Mathlib/Combinatorics/SimpleGraph/Girth.lean @@ -61,7 +61,6 @@ lemma exists_egirth_eq_length : ← exists_prop, Subtype.exists', Sigma.exists', eq_comm] at h ⊢ exact ciInf_mem _ -set_option backward.isDefEq.respectTransparency false in lemma three_le_egirth : 3 ≤ G.egirth := by simpa using fun _ _ a ↦ Walk.IsCycle.three_le_length a diff --git a/Mathlib/Combinatorics/SimpleGraph/Metric.lean b/Mathlib/Combinatorics/SimpleGraph/Metric.lean index daf824a3bd791d..c9e469edabbbff 100644 --- a/Mathlib/Combinatorics/SimpleGraph/Metric.lean +++ b/Mathlib/Combinatorics/SimpleGraph/Metric.lean @@ -70,7 +70,6 @@ theorem edist_le (p : G.Walk u v) : sInf_le ⟨p, rfl⟩ protected alias Walk.edist_le := edist_le -set_option backward.isDefEq.respectTransparency false in @[simp] theorem edist_eq_zero_iff : G.edist u v = 0 ↔ u = v := by @@ -96,7 +95,6 @@ lemma exists_walk_of_edist_ne_top (h : G.edist u v ≠ ⊤) : ∃ p : G.Walk u v, p.length = G.edist u v := (reachable_of_edist_ne_top h).exists_walk_length_eq_edist -set_option backward.isDefEq.respectTransparency false in protected theorem edist_triangle : G.edist u w ≤ G.edist u v + G.edist v w := by cases eq_or_ne (G.edist u v) ⊤ with | inl huv => simp [huv] @@ -245,7 +243,6 @@ protected theorem Connected.dist_triangle (hconn : G.Connected) : rw [← hp, ← hq, ← Walk.length_append] apply dist_le -set_option backward.isDefEq.respectTransparency false in lemma Reachable.dist_triangle_left (h : G.Reachable u v) (w) : G.dist u w ≤ G.dist u v + G.dist v w := by by_cases! h' : ¬G.Reachable u w @@ -253,7 +250,6 @@ lemma Reachable.dist_triangle_left (h : G.Reachable u v) (w) : rw [← ENat.coe_le_coe, ENat.coe_add] grind [SimpleGraph.edist_triangle, Reachable.trans, Reachable.symm] -set_option backward.isDefEq.respectTransparency false in lemma Reachable.dist_triangle_right (h : G.Reachable v w) (u) : G.dist u w ≤ G.dist u v + G.dist v w := by by_cases! h' : ¬G.Reachable u w diff --git a/Mathlib/Combinatorics/SimpleGraph/VertexCover.lean b/Mathlib/Combinatorics/SimpleGraph/VertexCover.lean index cd086362c7c7a1..be8d9555b09f9b 100644 --- a/Mathlib/Combinatorics/SimpleGraph/VertexCover.lean +++ b/Mathlib/Combinatorics/SimpleGraph/VertexCover.lean @@ -127,7 +127,6 @@ theorem vertexCoverNum_eq_zero : vertexCoverNum G = 0 ↔ G = ⊥ := by refine ⟨fun h ↦ ?_, by simp_all⟩ simpa [h] using vertexCoverNum_exists G -set_option backward.isDefEq.respectTransparency false in theorem vertexCoverNum_le_card_sub_one : vertexCoverNum G ≤ ENat.card V - 1 := by nontriviality V obtain ⟨x⟩ := not_subsingleton_iff_nontrivial.mp (not_subsingleton V) |>.to_nonempty @@ -146,7 +145,6 @@ theorem vertexCoverNum_lt_card [Nonempty V] [Finite V] : vertexCoverNum G < ENat enat_to_nat exact Nat.add_le_of_le_sub (Order.one_le_iff_pos.mpr Nat.card_pos) (le_refl _) -set_option backward.isDefEq.respectTransparency false in theorem vertexCoverNum_le_encard_edgeSet : vertexCoverNum G ≤ G.edgeSet.encard := by by_cases h' : G.edgeSet = ∅ · simp [h', SimpleGraph.edgeSet_eq_empty.mp] @@ -160,7 +158,6 @@ theorem vertexCoverNum_le_encard_edgeSet : vertexCoverNum G ≤ G.edgeSet.encard theorem vertexCoverNum_ne_top_of_finite_edgeSet (h : G.edgeSet.Finite) : vertexCoverNum G ≠ ⊤ := ne_top_of_le_ne_top (Set.encard_ne_top_iff.mpr h) vertexCoverNum_le_encard_edgeSet -set_option backward.isDefEq.respectTransparency false in @[simp] theorem vertexCoverNum_top : vertexCoverNum (completeGraph V) = ENat.card V - 1 := by nontriviality V using tsub_eq_zero_of_le diff --git a/Mathlib/Combinatorics/Tiling/Tile.lean b/Mathlib/Combinatorics/Tiling/Tile.lean index 7a8279f5230242..073b8316ce1185 100644 --- a/Mathlib/Combinatorics/Tiling/Tile.lean +++ b/Mathlib/Combinatorics/Tiling/Tile.lean @@ -249,7 +249,6 @@ instance : SMul G (PlacedTile ps) where induction pt using PlacedTile.induction_on rfl -set_option backward.isDefEq.respectTransparency false in @[simp] lemma coe_smul (g : G) (pt : PlacedTile ps) : (g • pt : PlacedTile ps) = g • (pt : Set X) := by induction pt using PlacedTile.induction_on diff --git a/Mathlib/Computability/NFA.lean b/Mathlib/Computability/NFA.lean index db5037a765f0fe..6e5a89afab2799 100644 --- a/Mathlib/Computability/NFA.lean +++ b/Mathlib/Computability/NFA.lean @@ -405,7 +405,6 @@ theorem disjoint_evalFrom_reverse_iff {x : List α} {S S' : Set σ} : Disjoint S (M.reverse.evalFrom S' x) ↔ Disjoint S' (M.evalFrom S x.reverse) := ⟨disjoint_evalFrom_reverse, fun h ↦ List.reverse_reverse x ▸ disjoint_evalFrom_reverse h⟩ -set_option backward.isDefEq.respectTransparency false in @[simp] theorem mem_accepts_reverse {x : List α} : x ∈ M.reverse.accepts ↔ x.reverse ∈ M.accepts := by simp [mem_accepts, ← Set.not_disjoint_iff, disjoint_evalFrom_reverse_iff] diff --git a/Mathlib/Computability/Primrec/List.lean b/Mathlib/Computability/Primrec/List.lean index fe38ce62dae448..ac0d82bf0e8cc7 100644 --- a/Mathlib/Computability/Primrec/List.lean +++ b/Mathlib/Computability/Primrec/List.lean @@ -585,7 +585,6 @@ theorem const {n} : ∀ m, @Primrec' n fun _ => m theorem head {n : ℕ} : @Primrec' n.succ head := (get 0).of_eq fun v => by simp [get_zero] -set_option backward.isDefEq.respectTransparency false in theorem tail {n f} (hf : @Primrec' n f) : @Primrec' n.succ fun v => f v.tail := (hf.comp _ fun i => @get _ i.succ).of_eq fun v => by rw [← ofFn_get v.tail]; congr; funext i; simp diff --git a/Mathlib/Data/ENat/Pow.lean b/Mathlib/Data/ENat/Pow.lean index c6c24d388e8dd7..b3794d14c0aa8e 100644 --- a/Mathlib/Data/ENat/Pow.lean +++ b/Mathlib/Data/ENat/Pow.lean @@ -110,7 +110,6 @@ lemma epow_eq_one_iff : x ^ y = 1 ↔ x = 1 ∨ y = 0 := by simp only [epow_one, h] at this exact (not_lt_of_ge this x_2).rec -set_option backward.isDefEq.respectTransparency false in lemma epow_add : x ^ (y + z) = x ^ y * x ^ z := by rcases lt_trichotomy x 1 with x_0 | rfl | x_2 · rw [lt_one_iff_eq_zero.1 x_0] @@ -140,7 +139,6 @@ lemma mul_epow : (x * y) ^ z = x ^ z * y ^ z := by exact epow_top (one_lt_mul x_2.le y_2) · simp only [epow_natCast, mul_pow x y] -set_option backward.isDefEq.respectTransparency false in lemma epow_mul : x ^ (y * z) = (x ^ y) ^ z := by rcases eq_or_ne y 0 with y_0 | y_0 · simp [y_0] diff --git a/Mathlib/Data/Holor.lean b/Mathlib/Data/Holor.lean index e157830b3922ff..a66431b1b9afe9 100644 --- a/Mathlib/Data/Holor.lean +++ b/Mathlib/Data/Holor.lean @@ -217,7 +217,6 @@ theorem slice_sum [AddCommMonoid α] {β : Type} (i : ℕ) (hid : i < d) (s : Fi · intro _ _ h_not_in ih rw [Finset.sum_insert h_not_in, ih, slice_add, Finset.sum_insert h_not_in] -set_option backward.isDefEq.respectTransparency false in /-- The original holor can be recovered from its slices by multiplying with unit vectors and summing up. -/ @[simp] @@ -275,7 +274,6 @@ theorem cprankMax_add [Mul α] [AddMonoid α] : · assumption · exact cprankMax_add hx₂ hy -set_option backward.isDefEq.respectTransparency false in theorem cprankMax_mul [NonUnitalNonAssocSemiring α] : ∀ (n : ℕ) (x : Holor α [d]) (y : Holor α ds), CPRankMax n y → CPRankMax n (x ⊗ y) | 0, x, _, CPRankMax.zero => by simp [mul_zero x, CPRankMax.zero] diff --git a/Mathlib/Data/NNRat/Lemmas.lean b/Mathlib/Data/NNRat/Lemmas.lean index 5a34e63b3a03f4..df6aac7d808201 100644 --- a/Mathlib/Data/NNRat/Lemmas.lean +++ b/Mathlib/Data/NNRat/Lemmas.lean @@ -48,7 +48,6 @@ lemma toNNRat_inv (q : ℚ) : toNNRat q⁻¹ = (toNNRat q)⁻¹ := by lemma toNNRat_div (hp : 0 ≤ p) : toNNRat (p / q) = toNNRat p / toNNRat q := by rw [div_eq_mul_inv, div_eq_mul_inv, ← toNNRat_inv, ← toNNRat_mul hp] -set_option backward.isDefEq.respectTransparency false in lemma toNNRat_div' (hq : 0 ≤ q) : toNNRat (p / q) = toNNRat p / toNNRat q := by rw [div_eq_inv_mul, div_eq_inv_mul, toNNRat_mul (inv_nonneg.2 hq), toNNRat_inv] diff --git a/Mathlib/Data/Nat/Multiplicity.lean b/Mathlib/Data/Nat/Multiplicity.lean index e0c7f2dfaf5436..5ed0419e2691e5 100644 --- a/Mathlib/Data/Nat/Multiplicity.lean +++ b/Mathlib/Data/Nat/Multiplicity.lean @@ -95,7 +95,6 @@ theorem emultiplicity_self {p : ℕ} (hp : p.Prime) : emultiplicity p p = 1 := theorem emultiplicity_pow_self {p n : ℕ} (hp : p.Prime) : emultiplicity p (p ^ n) = n := _root_.emultiplicity_pow_self hp.ne_zero hp.prime.not_unit n -set_option backward.isDefEq.respectTransparency false in /-- **Legendre's Theorem** The multiplicity of a prime in `n!` is the sum of the quotients `n / p ^ i`. This sum is expressed @@ -151,7 +150,6 @@ theorem emultiplicity_factorial_mul_succ {n p : ℕ} (hp : p.Prime) : rw [WithTop.add_left_inj h, sum_Ico_succ_top h2, hp.emultiplicity_mul, hp.emultiplicity_self, sum_congr rfl h4, sum_const_zero, zero_add, add_comm 1] -set_option backward.isDefEq.respectTransparency false in /-- The multiplicity of `p` in `(p * n)!` is `n` more than that of `n!`. -/ theorem emultiplicity_factorial_mul {n p : ℕ} (hp : p.Prime) : emultiplicity p (p * n)! = emultiplicity p n ! + n := by @@ -163,7 +161,6 @@ theorem emultiplicity_factorial_mul {n p : ℕ} (hp : p.Prime) : congr 1 rw [add_comm, add_assoc] -set_option backward.isDefEq.respectTransparency false in /- The multiplicity of a prime `p` in `p ^ n` is the sum of `p ^ i`, where `i` ranges between `0` and `n - 1`. -/ theorem multiplicity_factorial_pow {n p : ℕ} (hp : p.Prime) : @@ -189,7 +186,6 @@ theorem emultiplicity_factorial_le_div_pred {p : ℕ} (hp : p.Prime) (n : ℕ) : apply WithTop.coe_mono exact Nat.geom_sum_Ico_le hp.two_le _ _ -set_option backward.isDefEq.respectTransparency false in /-- The multiplicity of `p` in `choose (n + k) k` is the number of carries when `k` and `n` are added in base `p`. The set is expressed by filtering `Ico 1 b` where `b` is any bound greater than `log p (n + k)`. -/ @@ -232,7 +228,6 @@ theorem emultiplicity_le_emultiplicity_choose_add {p : ℕ} (hp : p.Prime) : variable {p n k : ℕ} -set_option backward.isDefEq.respectTransparency false in theorem emultiplicity_choose_prime_pow_add_emultiplicity (hp : p.Prime) (hkn : k ≤ p ^ n) (hk0 : k ≠ 0) : emultiplicity p (choose (p ^ n) k) + emultiplicity p k = n := le_antisymm @@ -253,7 +248,6 @@ theorem emultiplicity_choose_prime_pow_add_emultiplicity (hp : p.Prime) (hkn : k rwa [card_Ico 1 n.succ] at filter_le_Ico) (by rw [← hp.emultiplicity_pow_self]; exact emultiplicity_le_emultiplicity_choose_add hp _ _) -set_option backward.isDefEq.respectTransparency false in theorem emultiplicity_choose_prime_pow {p n k : ℕ} (hp : p.Prime) (hkn : k ≤ p ^ n) (hk0 : k ≠ 0) : emultiplicity p (choose (p ^ n) k) = ↑(n - multiplicity p k) := by push_cast @@ -277,7 +271,6 @@ theorem dvd_choose_pow_iff (hp : Prime p) : p ∣ (p ^ n).choose k ↔ k ≠ 0 end Prime -set_option backward.isDefEq.respectTransparency false in theorem emultiplicity_two_factorial_lt : ∀ {n : ℕ} (_ : n ≠ 0), emultiplicity 2 n ! < n := by have h2 := prime_two.prime refine binaryRec ?_ ?_ diff --git a/Mathlib/Data/Nat/PartENat.lean b/Mathlib/Data/Nat/PartENat.lean index 1a10b5bc3d3dcc..17ddc17cbd736b 100644 --- a/Mathlib/Data/Nat/PartENat.lean +++ b/Mathlib/Data/Nat/PartENat.lean @@ -551,7 +551,6 @@ theorem toWithTop_natCast' (n : ℕ) {_ : Decidable (n : PartENat).Dom} : theorem toWithTop_ofNat (n : ℕ) [n.AtLeastTwo] {_ : Decidable (OfNat.ofNat n : PartENat).Dom} : toWithTop (ofNat(n) : PartENat) = OfNat.ofNat n := toWithTop_natCast' n -set_option backward.isDefEq.respectTransparency false in @[simp] theorem toWithTop_le {x y : PartENat} [hx : Decidable x.Dom] [hy : Decidable y.Dom] : toWithTop x ≤ toWithTop y ↔ x ≤ y := by @@ -617,7 +616,6 @@ theorem ofENat_lt {x y : ℕ∞} : ofENat x < ofENat y ↔ x < y := by section WithTopEquiv -set_option backward.isDefEq.respectTransparency false in open scoped Classical in @[simp] theorem toWithTop_add {x y : PartENat} : toWithTop (x + y) = toWithTop x + toWithTop y := by diff --git a/Mathlib/Data/PFunctor/Multivariate/M.lean b/Mathlib/Data/PFunctor/Multivariate/M.lean index dcad336ffc2595..70431848031197 100644 --- a/Mathlib/Data/PFunctor/Multivariate/M.lean +++ b/Mathlib/Data/PFunctor/Multivariate/M.lean @@ -299,7 +299,6 @@ theorem M.dest_map {α β : TypeVec n} (g : α ⟹ β) (x : P.M α) : rw [M.dest, M.dest', map_eq, appendFun_comp_splitFun] rfl -set_option backward.isDefEq.respectTransparency false in theorem M.map_dest {α β : TypeVec n} (g : (α ::: P.M α) ⟹ (β ::: P.M β)) (x : P.M α) (h : ∀ x : P.M α, lastFun g x = (dropFun g <$$> x : P.M β)) : g <$$> M.dest P x = M.dest P (dropFun g <$$> x) := by diff --git a/Mathlib/Data/PFunctor/Univariate/M.lean b/Mathlib/Data/PFunctor/Univariate/M.lean index 19578a51a5aabd..589051c33ce4e0 100644 --- a/Mathlib/Data/PFunctor/Univariate/M.lean +++ b/Mathlib/Data/PFunctor/Univariate/M.lean @@ -247,7 +247,6 @@ inductive Agree' : ℕ → M F → M F → Prop @[simp] theorem dest_mk (x : F (M F)) : dest (M.mk x) = x := rfl -set_option backward.isDefEq.respectTransparency false in @[simp] theorem mk_dest (x : M F) : M.mk (dest x) = x := by apply ext' diff --git a/Mathlib/Data/PNat/Interval.lean b/Mathlib/Data/PNat/Interval.lean index 1e432cc9c28b02..cb27965f890ed7 100644 --- a/Mathlib/Data/PNat/Interval.lean +++ b/Mathlib/Data/PNat/Interval.lean @@ -65,7 +65,6 @@ set_option backward.isDefEq.respectTransparency false in theorem card_Ico : #(Ico a b) = b - a := by rw [← Nat.card_Ico, ← map_subtype_embedding_Ico, card_map] -set_option backward.isDefEq.respectTransparency false in @[simp] theorem card_Ioc : #(Ioc a b) = b - a := by rw [← Nat.card_Ioc, ← map_subtype_embedding_Ioc, card_map] diff --git a/Mathlib/Data/Seq/Basic.lean b/Mathlib/Data/Seq/Basic.lean index 42cf7a859bdc79..f4fb0af51a5541 100644 --- a/Mathlib/Data/Seq/Basic.lean +++ b/Mathlib/Data/Seq/Basic.lean @@ -41,7 +41,6 @@ set_option linter.flexible false in -- simp followed by exact rfl @[simp] theorem length_nil : length (nil : Seq α) terminates_nil = 0 := by simp [length]; exact rfl -set_option backward.isDefEq.respectTransparency false in @[simp] theorem length'_nil : length' (nil : Seq α) = 0 := by simp -implicitDefEqProofs [length'] @@ -51,7 +50,6 @@ theorem length_cons {x : α} {s : Seq α} (h : s.Terminates) : apply Nat.find_comp_succ simp -set_option backward.isDefEq.respectTransparency false in @[simp] theorem length'_cons (x : α) (s : Seq α) : (cons x s).length' = s.length' + 1 := by @@ -90,7 +88,6 @@ theorem length_le_iff {s : Seq α} {n : ℕ} {h : s.Terminates} : s.length h ≤ n ↔ s.TerminatedAt n := by rw [← length_le_iff']; simp [h] -set_option backward.isDefEq.respectTransparency false in theorem length'_le_iff {s : Seq α} {n : ℕ} : s.length' ≤ n ↔ s.TerminatedAt n := by by_cases h : s.Terminates @@ -115,7 +112,6 @@ theorem lt_length_iff {s : Seq α} {n : ℕ} {h : s.Terminates} : n < s.length h ↔ ∃ a, a ∈ s.get? n := by rw [← lt_length_iff']; simp [h] -set_option backward.isDefEq.respectTransparency false in theorem lt_length'_iff {s : Seq α} {n : ℕ} : n < s.length' ↔ ∃ a, a ∈ s.get? n := by by_cases h : s.Terminates @@ -530,7 +526,6 @@ theorem drop_nil {n : ℕ} : (@nil α).drop n = nil := by | zero => simp [drop] | succ m ih => simp [← dropn_tail, ih] -set_option backward.isDefEq.respectTransparency false in @[simp] theorem drop_length' {n : ℕ} {s : Seq α} : (s.drop n).length' = s.length' - n := by diff --git a/Mathlib/Data/Seq/Parallel.lean b/Mathlib/Data/Seq/Parallel.lean index abcd64ed5ad5dc..1ebf9181b89e3a 100644 --- a/Mathlib/Data/Seq/Parallel.lean +++ b/Mathlib/Data/Seq/Parallel.lean @@ -116,7 +116,6 @@ theorem terminates_parallel.aux : have := H1 _ h rcases Seq.destruct S with (_ | ⟨_ | c, S'⟩) <;> apply IH <;> simp [this] -set_option backward.isDefEq.respectTransparency false in theorem terminates_parallel {S : WSeq (Computation α)} {c} (h : c ∈ S) [T : Terminates c] : Terminates (parallel S) := by suffices diff --git a/Mathlib/Data/Set/Card.lean b/Mathlib/Data/Set/Card.lean index 3ba5ad2d1b00ea..abab08aede84a2 100644 --- a/Mathlib/Data/Set/Card.lean +++ b/Mathlib/Data/Set/Card.lean @@ -171,7 +171,6 @@ theorem finite_of_encard_le_coe {k : ℕ} (h : s.encard ≤ k) : s.Finite := by theorem finite_of_encard_eq_coe {k : ℕ} (h : s.encard = k) : s.Finite := finite_of_encard_le_coe h.le -set_option backward.isDefEq.respectTransparency false in theorem encard_le_coe_iff {k : ℕ} : s.encard ≤ k ↔ s.Finite ∧ ∃ (n₀ : ℕ), s.encard = n₀ ∧ n₀ ≤ k := ⟨fun h ↦ ⟨finite_of_encard_le_coe h, by rwa [ENat.le_coe_iff] at h⟩, fun ⟨_,⟨n₀,hs, hle⟩⟩ ↦ by rwa [hs, Nat.cast_le]⟩ @@ -438,7 +437,6 @@ theorem Finite.eq_insert_of_subset_of_encard_eq_succ (hs : s.Finite) (h : s ⊆ encard_eq_one] at hst obtain ⟨x, hx⟩ := hst; use x; rw [← diff_union_of_subset h, hx, singleton_union] -set_option backward.isDefEq.respectTransparency false in theorem exists_subset_encard_eq {k : ℕ∞} (hk : k ≤ s.encard) : ∃ t, t ⊆ s ∧ t.encard = k := by induction k using ENat.nat_induction with | zero => exact ⟨∅, empty_subset _, by simp⟩ @@ -615,7 +613,6 @@ theorem encard_le_coe_iff_finite_ncard_le {k : ℕ} : s.encard ≤ k ↔ s.Finit theorem Infinite.ncard (hs : s.Infinite) : s.ncard = 0 := by rw [← _root_.Nat.card_coe_set_eq, @Nat.card_eq_zero_of_infinite _ hs.to_subtype] -set_option backward.isDefEq.respectTransparency false in @[gcongr] theorem ncard_le_ncard (hst : s ⊆ t) (ht : t.Finite := by toFinite_tac) : s.ncard ≤ t.ncard := by @@ -624,7 +621,6 @@ theorem ncard_le_ncard (hst : s ⊆ t) (ht : t.Finite := by toFinite_tac) : theorem ncard_mono [Finite α] : @Monotone (Set α) _ _ _ ncard := fun _ _ ↦ ncard_le_ncard -set_option backward.isDefEq.respectTransparency false in @[simp] theorem ncard_eq_zero (hs : s.Finite := by toFinite_tac) : s.ncard = 0 ↔ s = ∅ := by rw [← Nat.cast_inj (R := ℕ∞), hs.cast_ncard_eq, Nat.cast_zero, encard_eq_zero] @@ -660,7 +656,6 @@ theorem nonempty_of_ncard_ne_zero (hs : s.ncard ≠ 0) : s.Nonempty := by @[simp] theorem ncard_singleton (a : α) : ({a} : Set α).ncard = 1 := by simp [ncard] -set_option backward.isDefEq.respectTransparency false in theorem ncard_singleton_inter (a : α) (s : Set α) : ({a} ∩ s).ncard ≤ 1 := by rw [← Nat.cast_le (α := ℕ∞), (toFinite _).cast_ncard_eq, Nat.cast_one] apply encard_singleton_inter @@ -678,7 +673,6 @@ theorem ncard_powerset (s : Set α) (hs : s.Finite := by toFinite_tac) : section InsertErase -set_option backward.isDefEq.respectTransparency false in @[simp] theorem ncard_insert_of_notMem {a : α} (h : a ∉ s) (hs : s.Finite := by toFinite_tac) : (insert a s).ncard = s.ncard + 1 := by rw [← Nat.cast_inj (R := ℕ∞), (hs.insert a).cast_ncard_eq, Nat.cast_add, Nat.cast_one, @@ -687,7 +681,6 @@ set_option backward.isDefEq.respectTransparency false in theorem ncard_insert_of_mem {a : α} (h : a ∈ s) : ncard (insert a s) = s.ncard := by rw [insert_eq_of_mem h] -set_option backward.isDefEq.respectTransparency false in theorem ncard_insert_le (a : α) (s : Set α) : (insert a s).ncard ≤ s.ncard + 1 := by obtain hs | hs := s.finite_or_infinite · to_encard_tac; rw [hs.cast_ncard_eq, (hs.insert _).cast_ncard_eq]; apply encard_insert_le @@ -713,7 +706,6 @@ theorem ncard_le_ncard_insert (a : α) (s : Set α) : s.ncard ≤ (insert a s).n theorem ncard_pair {a b : α} (h : a ≠ b) : ({a, b} : Set α).ncard = 2 := by simp [h] -set_option backward.isDefEq.respectTransparency false in -- removing `@[simp]` because the LHS is not in simp normal form theorem ncard_diff_singleton_add_one {a : α} (h : a ∈ s) (hs : s.Finite := by toFinite_tac) : (s \ {a}).ncard + 1 = s.ncard := by @@ -763,7 +755,6 @@ end InsertErase variable {f : α → β} -set_option backward.isDefEq.respectTransparency false in theorem ncard_image_le (hs : s.Finite := by toFinite_tac) : (f '' s).ncard ≤ s.ncard := by to_encard_tac; rw [hs.cast_ncard_eq, (hs.image _).cast_ncard_eq]; apply encard_image_le @@ -772,7 +763,6 @@ theorem InjOn.ncard_image (H : Set.InjOn f s) : (f '' s).ncard = s.ncard := @[deprecated (since := "2026-01-30")] alias ncard_image_of_injOn := InjOn.ncard_image -set_option backward.isDefEq.respectTransparency false in theorem injOn_of_ncard_image_eq (h : (f '' s).ncard = s.ncard) (hs : s.Finite := by toFinite_tac) : Set.InjOn f s := by rw [← Nat.cast_inj (R := ℕ∞), hs.cast_ncard_eq, (hs.image _).cast_ncard_eq] at h @@ -814,7 +804,6 @@ theorem ncard_inter_le_ncard_right (s t : Set α) (ht : t.Finite := by toFinite_ (s ∩ t).ncard ≤ t.ncard := ncard_le_ncard inter_subset_right ht -set_option backward.isDefEq.respectTransparency false in theorem eq_of_subset_of_ncard_le (h : s ⊆ t) (h' : t.ncard ≤ s.ncard) (ht : t.Finite := by toFinite_tac) : s = t := ht.eq_of_subset_of_encard_le' h @@ -832,7 +821,6 @@ theorem sep_of_ncard_eq {a : α} {P : α → Prop} (h : { x ∈ s | P x }.ncard (hs : s.Finite := by toFinite_tac) : P a := sep_eq_self_iff_mem_true.mp (eq_of_subset_of_ncard_le (by simp) h.symm.le hs) _ ha -set_option backward.isDefEq.respectTransparency false in theorem ncard_lt_ncard (h : s ⊂ t) (ht : t.Finite := by toFinite_tac) : s.ncard < t.ncard := by rw [← Nat.cast_lt (α := ℕ∞), ht.cast_ncard_eq, (ht.subset h.subset).cast_ncard_eq] @@ -879,7 +867,6 @@ theorem ncard_congr {t : Set β} (f : ∀ a ∈ s, β) (h₁ : ∀ a ha, f a ha theorem ncard_congr' {S : Set α} {T : Set β} (f : S ≃ T) : Set.ncard S = Set.ncard T := Cardinal.toNat_congr f -set_option backward.isDefEq.respectTransparency false in theorem ncard_le_ncard_of_injOn {t : Set β} (f : α → β) (hf : ∀ a ∈ s, f a ∈ t) (f_inj : InjOn f s) (ht : t.Finite := by toFinite_tac) : s.ncard ≤ t.ncard := by @@ -956,7 +943,6 @@ theorem ncard_coe {α : Type*} (s : Set α) : section Lattice -set_option backward.isDefEq.respectTransparency false in theorem ncard_union_add_ncard_inter (s t : Set α) (hs : s.Finite := by toFinite_tac) (ht : t.Finite := by toFinite_tac) : (s ∪ t).ncard + (s ∩ t).ncard = s.ncard + t.ncard := by to_encard_tac; rw [hs.cast_ncard_eq, ht.cast_ncard_eq, (hs.union ht).cast_ncard_eq, @@ -966,7 +952,6 @@ theorem ncard_inter_add_ncard_union (s t : Set α) (hs : s.Finite := by toFinite (ht : t.Finite := by toFinite_tac) : (s ∩ t).ncard + (s ∪ t).ncard = s.ncard + t.ncard := by rw [add_comm, ncard_union_add_ncard_inter _ _ hs ht] -set_option backward.isDefEq.respectTransparency false in theorem ncard_union_le (s t : Set α) : (s ∪ t).ncard ≤ s.ncard + t.ncard := by obtain (h | h) := (s ∪ t).finite_or_infinite · to_encard_tac @@ -976,7 +961,6 @@ theorem ncard_union_le (s t : Set α) : (s ∪ t).ncard ≤ s.ncard + t.ncard := rw [h.ncard] apply zero_le -set_option backward.isDefEq.respectTransparency false in theorem ncard_union_eq (h : Disjoint s t) (hs : s.Finite := by toFinite_tac) (ht : t.Finite := by toFinite_tac) : (s ∪ t).ncard = s.ncard + t.ncard := by to_encard_tac @@ -993,7 +977,6 @@ theorem ncard_union_lt (hs : s.Finite := by toFinite_tac) (s ∪ t).ncard < s.ncard + t.ncard := (ncard_union_le s t).lt_of_ne (mt (ncard_union_eq_iff hs ht).mp h) -set_option backward.isDefEq.respectTransparency false in theorem ncard_diff_add_ncard_of_subset (h : s ⊆ t) (ht : t.Finite := by toFinite_tac) : (t \ s).ncard + s.ncard = t.ncard := by to_encard_tac @@ -1010,7 +993,6 @@ lemma cast_ncard_sdiff {R : Type*} [AddGroupWithOne R] (hst : s ⊆ t) (ht : t.F ((t \ s).ncard : R) = t.ncard - s.ncard := by rw [ncard_diff hst (ht.subset hst), Nat.cast_sub (ncard_le_ncard hst ht)] -set_option backward.isDefEq.respectTransparency false in theorem ncard_le_ncard_diff_add_ncard (s t : Set α) (ht : t.Finite := by toFinite_tac) : s.ncard ≤ (s \ t).ncard + t.ncard := by rcases s.finite_or_infinite with hs | hs diff --git a/Mathlib/Data/ZMod/QuotientGroup.lean b/Mathlib/Data/ZMod/QuotientGroup.lean index 8eeeaad65f3536..22d38b8fbc2941 100644 --- a/Mathlib/Data/ZMod/QuotientGroup.lean +++ b/Mathlib/Data/ZMod/QuotientGroup.lean @@ -197,7 +197,6 @@ lemma quotientEquivSigmaZMod_apply (q : orbitRel.Quotient (zpowers g) (G ⧸ H)) rw [apply_eq_iff_eq_symm_apply, quotientEquivSigmaZMod_symm_apply, ZMod.coe_intCast, zpow_smul_mod_minimalPeriod] -set_option backward.isDefEq.respectTransparency false in /-- The sum of minimal periods over all orbits equals the index `[G:H]`. -/ lemma index_eq_sum_minimalPeriod (g : G) [Finite (G ⧸ H)] [Fintype (Quotient (MulAction.orbitRel (zpowers g) (G ⧸ H)))] : diff --git a/Mathlib/FieldTheory/LinearDisjoint.lean b/Mathlib/FieldTheory/LinearDisjoint.lean index a179797e7d0059..835cdc0aeec8e6 100644 --- a/Mathlib/FieldTheory/LinearDisjoint.lean +++ b/Mathlib/FieldTheory/LinearDisjoint.lean @@ -731,7 +731,6 @@ theorem isField_of_forall (A : Type v) [Field A] (B : Type w) [Field B] change Function.Injective (Ideal.Quotient.mk M) at H rwa [RingHom.injective_iff_ker_eq_bot, Ideal.mk_ker] at H -set_option backward.isDefEq.respectTransparency false in variable (F E) in /-- 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. It is a corollary of diff --git a/Mathlib/FieldTheory/Separable.lean b/Mathlib/FieldTheory/Separable.lean index 934c6c160ec635..74e2984cb52bd6 100644 --- a/Mathlib/FieldTheory/Separable.lean +++ b/Mathlib/FieldTheory/Separable.lean @@ -281,7 +281,6 @@ theorem separable_C_mul_X_pow_add_C_mul_X_add_C' (C a * X ^ n + C b * X + C c).Separable := separable_C_mul_X_pow_add_C_mul_X_add_C a b c ((CharP.cast_eq_zero_iff R p n).2 hn) hb -set_option backward.isDefEq.respectTransparency false in theorem rootMultiplicity_le_one_of_separable [Nontrivial R] {p : R[X]} (hsep : Separable p) (x : R) : rootMultiplicity x p ≤ 1 := by classical diff --git a/Mathlib/Geometry/Euclidean/Angle/Sphere.lean b/Mathlib/Geometry/Euclidean/Angle/Sphere.lean index 9dfddc20ec6fdb..34ba17744df3da 100644 --- a/Mathlib/Geometry/Euclidean/Angle/Sphere.lean +++ b/Mathlib/Geometry/Euclidean/Angle/Sphere.lean @@ -425,7 +425,6 @@ theorem mem_circumsphere_of_two_zsmul_oangle_eq {t : Triangle ℝ P} {p : P} {i end Oriented -set_option backward.isDefEq.respectTransparency false in /-- The circumradius of a triangle may be expressed explicitly as half the length of a side divided by the sine of the angle at the third point (a version of the law of sines or sine rule). -/ theorem dist_div_sin_angle_div_two_eq_circumradius (t : Triangle ℝ P) {i₁ i₂ i₃ : Fin 3} diff --git a/Mathlib/Geometry/Euclidean/MongePoint.lean b/Mathlib/Geometry/Euclidean/MongePoint.lean index 9221d1709f7bc8..c9fbe0ebbbafb9 100644 --- a/Mathlib/Geometry/Euclidean/MongePoint.lean +++ b/Mathlib/Geometry/Euclidean/MongePoint.lean @@ -123,7 +123,6 @@ theorem mongePoint_mem_affineSpan {n : ℕ} (s : Simplex ℝ P n) : smul_vsub_vadd_mem _ _ (centroid_mem_affineSpan_of_card_eq_add_one ℝ _ (card_fin (n + 1))) s.circumcenter_mem_affineSpan s.circumcenter_mem_affineSpan -set_option backward.isDefEq.respectTransparency false in @[simp] theorem mongePoint_restrict {n : ℕ} (s : Simplex ℝ P n) (S : AffineSubspace ℝ P) (hS : affineSpan ℝ (Set.range s.points) ≤ S) : diff --git a/Mathlib/Geometry/Euclidean/NinePointCircle.lean b/Mathlib/Geometry/Euclidean/NinePointCircle.lean index 53ea53cfb59532..f34245a633be17 100644 --- a/Mathlib/Geometry/Euclidean/NinePointCircle.lean +++ b/Mathlib/Geometry/Euclidean/NinePointCircle.lean @@ -83,7 +83,6 @@ theorem ninePointCircle_map {V₂ P₂ : Type*} [NormedAddCommGroup V₂] [Inner · simp [ninePointCircle_center, centroid_map] · simp [ninePointCircle_radius] -set_option backward.isDefEq.respectTransparency false in theorem ninePointCircle_restrict {n : ℕ} (s : Simplex ℝ P n) (S : AffineSubspace ℝ P) (hS : affineSpan ℝ (Set.range s.points) ≤ S) : haveI := Nonempty.map (AffineSubspace.inclusion hS) inferInstance diff --git a/Mathlib/Geometry/Euclidean/Projection.lean b/Mathlib/Geometry/Euclidean/Projection.lean index 785e37fcbc9293..6e1b28c0ffc256 100644 --- a/Mathlib/Geometry/Euclidean/Projection.lean +++ b/Mathlib/Geometry/Euclidean/Projection.lean @@ -61,7 +61,6 @@ theorem orthogonalProjection_apply' (s : AffineSubspace 𝕜 P) [Nonempty s] (Classical.arbitrary s : P) := rfl -set_option backward.isDefEq.respectTransparency false in theorem orthogonalProjection_apply_mem (s : AffineSubspace 𝕜 P) [Nonempty s] [s.direction.HasOrthogonalProjection] {p x} (hx : x ∈ s) : orthogonalProjection s p = (s.direction.orthogonalProjection (p -ᵥ x) : V) +ᵥ x := by @@ -84,7 +83,6 @@ theorem orthogonalProjection_congr {s₁ s₂ : AffineSubspace 𝕜 P} {p₁ p subst h hp rfl -set_option backward.isDefEq.respectTransparency false in /-- The linear map corresponding to `orthogonalProjection`. -/ @[simp] theorem orthogonalProjection_linear {s : AffineSubspace 𝕜 P} [Nonempty s] @@ -551,7 +549,6 @@ variable [MetricSpace P₂] [NormedAddTorsor V₂ P₂] LinearIsometry.inner_map_map, Submodule.inner_right_of_mem_orthogonal hv (vsub_orthogonalProjection_mem_direction_orthogonal _ _)] -set_option backward.isDefEq.respectTransparency false in lemma orthogonalProjection_subtype (s : AffineSubspace 𝕜 P) [Nonempty s] (s' : AffineSubspace 𝕜 s) [Nonempty s'] [s'.direction.HasOrthogonalProjection] [(s'.map s.subtype).direction.HasOrthogonalProjection] (p : s) : @@ -568,7 +565,6 @@ lemma orthogonalProjection_subtype (s : AffineSubspace 𝕜 P) [Nonempty s] (s' reflection (s.map f.toAffineMap) (f p) = f (reflection s p) := by simp [reflection_apply'] -set_option backward.isDefEq.respectTransparency false in lemma reflection_subtype (s : AffineSubspace 𝕜 P) [Nonempty s] (s' : AffineSubspace 𝕜 s) [Nonempty s'] [s'.direction.HasOrthogonalProjection] [(s'.map s.subtype).direction.HasOrthogonalProjection] (p : s) : diff --git a/Mathlib/Geometry/Euclidean/SignedDist.lean b/Mathlib/Geometry/Euclidean/SignedDist.lean index 65c39dc45308a5..9dca0146f60d5c 100644 --- a/Mathlib/Geometry/Euclidean/SignedDist.lean +++ b/Mathlib/Geometry/Euclidean/SignedDist.lean @@ -271,7 +271,6 @@ variable {s p} in ext x simp [signedInfDist_def, orthogonalProjection_eq_self_iff.2 h] -set_option backward.isDefEq.respectTransparency false in variable {s p} in lemma abs_signedInfDist_eq_dist_of_mem_affineSpan_insert {x : P} (h : x ∈ affineSpan ℝ (insert p s)) : diff --git a/Mathlib/Geometry/Manifold/Instances/Sphere.lean b/Mathlib/Geometry/Manifold/Instances/Sphere.lean index cf303f55cf0e70..a65c8862efb9ce 100644 --- a/Mathlib/Geometry/Manifold/Instances/Sphere.lean +++ b/Mathlib/Geometry/Manifold/Instances/Sphere.lean @@ -280,7 +280,6 @@ theorem stereographic_source (hv : ‖v‖ = 1) : (stereographic hv).source = { theorem stereographic_target (hv : ‖v‖ = 1) : (stereographic hv).target = Set.univ := rfl -set_option backward.isDefEq.respectTransparency false in @[simp] theorem stereographic_apply_neg (v : sphere (0 : E) 1) : stereographic (norm_eq_of_mem_sphere v) (-v) = 0 := by diff --git a/Mathlib/Geometry/Manifold/MFDeriv/Atlas.lean b/Mathlib/Geometry/Manifold/MFDeriv/Atlas.lean index 487bed96525b03..b3c8434cb67c33 100644 --- a/Mathlib/Geometry/Manifold/MFDeriv/Atlas.lean +++ b/Mathlib/Geometry/Manifold/MFDeriv/Atlas.lean @@ -356,7 +356,6 @@ lemma isInvertible_mfderiv_extChartAt {y : M} (hy : y ∈ (extChartAt I x).sourc have : (extChartAt I x).symm ((extChartAt I x) y) = y := (extChartAt I x).left_inv hy rwa [this] at Z -set_option backward.isDefEq.respectTransparency false in /-- The trivialization of the tangent bundle at a point is the manifold derivative of the extended chart. Use with care as this abuses the defeq `TangentSpace 𝓘(𝕜, E) y = E` for `y : E`. -/ diff --git a/Mathlib/GroupTheory/Coprod/Basic.lean b/Mathlib/GroupTheory/Coprod/Basic.lean index 0edee6c877c76d..b3ca0d710cf16e 100644 --- a/Mathlib/GroupTheory/Coprod/Basic.lean +++ b/Mathlib/GroupTheory/Coprod/Basic.lean @@ -665,7 +665,6 @@ end MulOneClass variable (M N P : Type*) [Monoid M] [Monoid N] [Monoid P] -set_option backward.isDefEq.respectTransparency false in /-- A multiplicative equivalence between `(M ∗ N) ∗ P` and `M ∗ (N ∗ P)`. -/ @[to_additive /-- An additive equivalence between `AddMonoid.Coprod (AddMonoid.Coprod M N) P` and `AddMonoid.Coprod M (AddMonoid.Coprod N P)`. -/] diff --git a/Mathlib/GroupTheory/CoprodI.lean b/Mathlib/GroupTheory/CoprodI.lean index 07c4a82f410fa0..d3a8f939490231 100644 --- a/Mathlib/GroupTheory/CoprodI.lean +++ b/Mathlib/GroupTheory/CoprodI.lean @@ -178,7 +178,6 @@ theorem of_leftInverse [DecidableEq ι] (i : ι) : theorem of_injective (i : ι) : Function.Injective (of : M i →* _) := by classical exact (of_leftInverse i).injective -set_option backward.isDefEq.respectTransparency false in theorem mrange_eq_iSup {N} [Monoid N] (f : ∀ i, M i →* N) : MonoidHom.mrange (lift f) = ⨆ i, MonoidHom.mrange (f i) := by rw [lift, Equiv.coe_fn_mk, Con.lift_range, FreeMonoid.mrange_lift, diff --git a/Mathlib/GroupTheory/FreeGroup/Orbit.lean b/Mathlib/GroupTheory/FreeGroup/Orbit.lean index 072a91e70ad10d..516448f05a7c3b 100644 --- a/Mathlib/GroupTheory/FreeGroup/Orbit.lean +++ b/Mathlib/GroupTheory/FreeGroup/Orbit.lean @@ -34,7 +34,6 @@ The neutral element is not contained in one of the startsWith sets. theorem startsWith.ne_one {w : α × Bool} (g : FreeGroup α) (h : g ∈ FreeGroup.startsWith w) : g ≠ 1 := fun h1 ↦ by simp [h1, startsWith, FreeGroup.toWord_one] at h -set_option backward.isDefEq.respectTransparency false in @[simp] lemma startsWith.disjoint_iff_ne {w w' : α × Bool} : Disjoint (startsWith w) (startsWith w') ↔ w ≠ w' := by diff --git a/Mathlib/GroupTheory/GroupAction/MultiplePrimitivity.lean b/Mathlib/GroupTheory/GroupAction/MultiplePrimitivity.lean index b59aa6eaf7b942..f4362def6d7c7b 100644 --- a/Mathlib/GroupTheory/GroupAction/MultiplePrimitivity.lean +++ b/Mathlib/GroupTheory/GroupAction/MultiplePrimitivity.lean @@ -114,14 +114,12 @@ instance (n : ℕ) [IsMultiplyPreprimitive M α n] : IsMultiplyPretransitive M α n := IsMultiplyPreprimitive.isMultiplyPretransitive M α n -set_option backward.isDefEq.respectTransparency false in /-- Any action is `0`-preprimitive. -/ @[to_additive /-- Any action is `0`-preprimitive. -/] theorem is_zero_preprimitive : IsMultiplyPreprimitive M α 0 where isMultiplyPretransitive := MulAction.is_zero_pretransitive isPreprimitive_ofFixingSubgroup hs := by simp at hs -set_option backward.isDefEq.respectTransparency false in /-- An action is preprimitive iff it is `1`-preprimitive. -/ @[to_additive /-- An action is preprimitive iff it is `1`-preprimitive. -/] @@ -137,7 +135,6 @@ theorem is_one_preprimitive_iff : · exact is_one_pretransitive_iff.mpr h.toIsPretransitive · simpa using isPreprimitive_of_fixingSubgroup_empty_iff.mpr h -set_option backward.isDefEq.respectTransparency false in /-- The action of `stabilizer M a` is one-less preprimitive. -/ @[to_additive /-- The action of `stabilizer M a` is one-less preprimitive. -/] theorem isMultiplyPreprimitive_ofStabilizer @@ -159,7 +156,6 @@ theorem isMultiplyPreprimitive_ofStabilizer aesop exact IsPreprimitive.of_surjective ofFixingSubgroup_insert_map_bijective.surjective -set_option backward.isDefEq.respectTransparency false in /-- A pretransitive action is `n.succ-`preprimitive iff the action of stabilizers is `n`-preprimitive. -/ @[to_additive /-- A pretransitive action is `n.succ-`preprimitive @@ -209,7 +205,6 @@ theorem isMultiplyPreprimitive_succ_iff_ofStabilizer rw [Set.encard_insert_of_notMem, Subtype.coe_injective.encard_image, ENat.coe_one] exact notMem_val_image M t -set_option backward.isDefEq.respectTransparency false in /-- The fixator of a subset of cardinal `d` in an `n`-primitive action acts `n-d`-primitively on the remaining (`d ≤ n`). -/ @[to_additive diff --git a/Mathlib/GroupTheory/GroupAction/SubMulAction/OfFixingSubgroup.lean b/Mathlib/GroupTheory/GroupAction/SubMulAction/OfFixingSubgroup.lean index cbbfbe018f3eea..34bc3031fad3ab 100644 --- a/Mathlib/GroupTheory/GroupAction/SubMulAction/OfFixingSubgroup.lean +++ b/Mathlib/GroupTheory/GroupAction/SubMulAction/OfFixingSubgroup.lean @@ -477,7 +477,6 @@ section TwoCriteria open MulAction -set_option backward.isDefEq.respectTransparency false in /-- A pretransitivity criterion. -/ theorem IsPretransitive.isPretransitive_ofFixingSubgroup_inter (hs : IsPretransitive (fixingSubgroup M s) (ofFixingSubgroup M s)) diff --git a/Mathlib/GroupTheory/IsSubnormal.lean b/Mathlib/GroupTheory/IsSubnormal.lean index 488b241f40bb60..00b94b901f6647 100644 --- a/Mathlib/GroupTheory/IsSubnormal.lean +++ b/Mathlib/GroupTheory/IsSubnormal.lean @@ -90,7 +90,6 @@ inductive _root_.AddSubgroup.IsSubnormal {G : Type*} [AddGroup G] : AddSubgroup attribute [simp] Subgroup.IsSubnormal.top -set_option backward.isDefEq.respectTransparency false in /-- A normal subgroup is subnormal. -/ @[to_additive /-- A normal additive subgroup is subnormal. -/] lemma Normal.isSubnormal (hn : H.Normal) : IsSubnormal H := diff --git a/Mathlib/GroupTheory/NoncommCoprod.lean b/Mathlib/GroupTheory/NoncommCoprod.lean index f4cbb143b63d9b..ed92127f85c0e1 100644 --- a/Mathlib/GroupTheory/NoncommCoprod.lean +++ b/Mathlib/GroupTheory/NoncommCoprod.lean @@ -140,7 +140,6 @@ lemma noncommCoprod_injective {M N P : Type*} [Group M] [Group N] [Group P] have key := hp ⟨⟨a⁻¹, by rwa [map_inv, inv_eq_iff_mul_eq_one]⟩, b, rfl⟩ exact ⟨hf a (by rwa [key, mul_one] at h), hg b key⟩ -set_option backward.isDefEq.respectTransparency false in lemma noncommCoprod_range {M N P : Type*} [Group M] [Group N] [Group P] (f : M →* P) (g : N →* P) (comm : ∀ (m : M) (n : N), Commute (f m) (g n)) : (noncommCoprod f g comm).range = f.range ⊔ g.range := by diff --git a/Mathlib/GroupTheory/Perm/ClosureSwap.lean b/Mathlib/GroupTheory/Perm/ClosureSwap.lean index f8d96dc6d8dddc..7cc762ffafd823 100644 --- a/Mathlib/GroupTheory/Perm/ClosureSwap.lean +++ b/Mathlib/GroupTheory/Perm/ClosureSwap.lean @@ -137,7 +137,6 @@ theorem closure_of_isSwap_of_isPretransitive [Finite α] {S : Set (Perm α)} (hS [MulAction.IsPretransitive (Subgroup.closure S) α] : Subgroup.closure S = ⊤ := by simp [eq_top_iff', mem_closure_isSwap hS, orbit_eq_univ, Set.toFinite] -set_option backward.isDefEq.respectTransparency false in /-- A transitive permutation group generated by transpositions must be the whole symmetric group -/ theorem surjective_of_isSwap_of_isPretransitive' [Finite α] (S : Set G) (hS1 : ∀ σ ∈ S, MulAction.toPermHom G α σ = 1 ∨ Perm.IsSwap (MulAction.toPermHom G α σ)) diff --git a/Mathlib/GroupTheory/SpecificGroups/Alternating.lean b/Mathlib/GroupTheory/SpecificGroups/Alternating.lean index c77166d0bbc0d4..bcdc1c560ac230 100644 --- a/Mathlib/GroupTheory/SpecificGroups/Alternating.lean +++ b/Mathlib/GroupTheory/SpecificGroups/Alternating.lean @@ -460,7 +460,6 @@ namespace Equiv.Perm open Subgroup Group -set_option backward.isDefEq.respectTransparency false in /-- The alternating group is the only subgroup of index 2 of the permutation group. -/ theorem eq_alternatingGroup_of_index_eq_two {G : Subgroup (Equiv.Perm α)} (hG : G.index = 2) : G = alternatingGroup α := by diff --git a/Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Basic.lean b/Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Basic.lean index 8f82307e27c0bf..b43f900fe4a553 100644 --- a/Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Basic.lean +++ b/Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Basic.lean @@ -90,14 +90,12 @@ theorem coe_vadd (s : AffineSubspace k P) [Nonempty s] (a : s.direction) (b : s) ↑(a +ᵥ b) = (a : V) +ᵥ (b : P) := rfl -set_option backward.isDefEq.respectTransparency false in /-- Embedding of an affine subspace to the ambient space, as an affine map. -/ protected def subtype (s : AffineSubspace k P) [Nonempty s] : s →ᵃ[k] P where toFun := (↑) linear := s.direction.subtype map_vadd' _ _ := rfl -set_option backward.isDefEq.respectTransparency false in @[simp] theorem subtype_linear (s : AffineSubspace k P) [Nonempty s] : s.subtype.linear = s.direction.subtype := rfl @@ -158,7 +156,6 @@ theorem preimage_coe_affineSpan_singleton (x : P) : variable (P) -set_option backward.isDefEq.respectTransparency false in /-- The top affine subspace is linearly equivalent to the affine space. This is the affine version of `Submodule.topEquiv`. -/ @[simps! linear apply symm_apply_coe] @@ -615,7 +612,6 @@ lemma map_mk' (p : P₁) (direction : Submodule k V₁) : section inclusion variable {S₁ S₂ : AffineSubspace k P₁} [Nonempty S₁] -set_option backward.isDefEq.respectTransparency false in /-- Affine map from a smaller to a larger subspace of the same space. This is the affine version of `Submodule.inclusion`. -/ @@ -632,7 +628,6 @@ def inclusion (h : S₁ ≤ S₂) : theorem coe_inclusion_apply (h : S₁ ≤ S₂) (x : S₁) : (inclusion h x : P₁) = x := rfl -set_option backward.isDefEq.respectTransparency false in @[simp] theorem inclusion_rfl : inclusion (le_refl S₁) = AffineMap.id k S₁ := rfl @@ -688,7 +683,6 @@ theorem ext_on {V₂ P₂ : Type*} [AddCommGroup V₂] [Module k V₂] [AddTorso section ofEq variable (S₁ S₂ : AffineSubspace k P₁) [Nonempty S₁] [Nonempty S₂] -set_option backward.isDefEq.respectTransparency false in /-- Affine equivalence between two equal affine subspace. This is the affine version of `LinearEquiv.ofEq`. -/ @@ -702,13 +696,11 @@ def ofEq (h : S₁ = S₂) : S₁ ≃ᵃ[k] S₂ where theorem coe_ofEq_apply (h : S₁ = S₂) (x : S₁) : (ofEq S₁ S₂ h x : P₁) = x := rfl -set_option backward.isDefEq.respectTransparency false in @[simp] theorem ofEq_symm (h : S₁ = S₂) : (ofEq S₁ S₂ h).symm = ofEq S₂ S₁ h.symm := by ext rfl -set_option backward.isDefEq.respectTransparency false in @[simp] theorem ofEq_rfl : ofEq S₁ S₁ rfl = AffineEquiv.refl k S₁ := rfl diff --git a/Mathlib/LinearAlgebra/AffineSpace/FiniteDimensional.lean b/Mathlib/LinearAlgebra/AffineSpace/FiniteDimensional.lean index 49b8434fcc2016..9fce3a60e806d6 100644 --- a/Mathlib/LinearAlgebra/AffineSpace/FiniteDimensional.lean +++ b/Mathlib/LinearAlgebra/AffineSpace/FiniteDimensional.lean @@ -42,54 +42,46 @@ open AffineSubspace Module variable [DivisionRing k] [AddCommGroup V] [Module k V] [AffineSpace V P] -set_option backward.isDefEq.respectTransparency false in /-- The `vectorSpan` of a finite set is finite-dimensional. -/ theorem finiteDimensional_vectorSpan_of_finite {s : Set P} (h : Set.Finite s) : FiniteDimensional k (vectorSpan k s) := .span_of_finite k <| h.vsub h -set_option backward.isDefEq.respectTransparency false in /-- The vector span of a singleton is finite-dimensional. -/ instance finiteDimensional_vectorSpan_singleton (p : P) : FiniteDimensional k (vectorSpan k {p}) := finiteDimensional_vectorSpan_of_finite _ (Set.finite_singleton p) -set_option backward.isDefEq.respectTransparency false in /-- The `vectorSpan` of a family indexed by a `Fintype` is finite-dimensional. -/ instance finiteDimensional_vectorSpan_range [Finite ι] (p : ι → P) : FiniteDimensional k (vectorSpan k (Set.range p)) := finiteDimensional_vectorSpan_of_finite k (Set.finite_range _) -set_option backward.isDefEq.respectTransparency false in /-- The `vectorSpan` of a subset of a family indexed by a `Fintype` is finite-dimensional. -/ instance finiteDimensional_vectorSpan_image_of_finite [Finite ι] (p : ι → P) (s : Set ι) : FiniteDimensional k (vectorSpan k (p '' s)) := finiteDimensional_vectorSpan_of_finite k (Set.toFinite _) -set_option backward.isDefEq.respectTransparency false in /-- The direction of the affine span of a finite set is finite-dimensional. -/ theorem finiteDimensional_direction_affineSpan_of_finite {s : Set P} (h : Set.Finite s) : FiniteDimensional k (affineSpan k s).direction := (direction_affineSpan k s).symm ▸ finiteDimensional_vectorSpan_of_finite k h -set_option backward.isDefEq.respectTransparency false in /-- The direction of the affine span of a singleton is finite-dimensional. -/ instance finiteDimensional_direction_affineSpan_singleton (p : P) : FiniteDimensional k (affineSpan k {p}).direction := by rw [direction_affineSpan] infer_instance -set_option backward.isDefEq.respectTransparency false in /-- The direction of the affine span of a family indexed by a `Fintype` is finite-dimensional. -/ instance finiteDimensional_direction_affineSpan_range [Finite ι] (p : ι → P) : FiniteDimensional k (affineSpan k (Set.range p)).direction := finiteDimensional_direction_affineSpan_of_finite k (Set.finite_range _) -set_option backward.isDefEq.respectTransparency false in /-- The direction of the affine span of a subset of a family indexed by a `Fintype` is finite-dimensional. -/ instance finiteDimensional_direction_affineSpan_image_of_finite [Finite ι] (p : ι → P) (s : Set ι) : @@ -112,7 +104,6 @@ theorem finite_set_of_fin_dim_affineIndependent [FiniteDimensional k V] {s : Set variable {k} -set_option backward.isDefEq.respectTransparency false in /-- The supremum of two finite-dimensional affine subspaces is finite-dimensional. -/ instance AffineSubspace.finiteDimensional_sup (s₁ s₂ : AffineSubspace k P) [FiniteDimensional k s₁.direction] [FiniteDimensional k s₂.direction] : @@ -124,7 +115,6 @@ instance AffineSubspace.finiteDimensional_sup (s₁ s₂ : AffineSubspace k P) rw [AffineSubspace.direction_sup hp₁ hp₂] infer_instance -set_option backward.isDefEq.respectTransparency false in /-- The image of a finite-dimensional affine subspace under an affine map is finite-dimensional. -/ instance finiteDimensional_direction_map {V₂ P₂ : Type*} [AddCommGroup V₂] [Module k V₂] [AffineSpace V₂ P₂] (s : AffineSubspace k P) [FiniteDimensional k s.direction] @@ -257,7 +247,6 @@ lemma AffineIndependent.card_le_finrank_succ [Fintype ι] {p : ι → P} (hp : A exact (affineIndependent_iff_le_finrank_vectorSpan _ _ (tsub_add_cancel_of_le <| Nat.one_le_iff_ne_zero.2 Fintype.card_ne_zero).symm).1 hp -set_option backward.isDefEq.respectTransparency false in open Finset in /-- If an affine independent finset is contained in the affine span of another finset, then its cardinality is at most the cardinality of that finset. -/ @@ -299,7 +288,6 @@ lemma AffineIndependent.card_lt_card_of_affineSpan_lt_affineSpan {s t : Finset V erw [hs.finrank_vectorSpan_add_one] at finrank_lt simpa using finrank_lt.trans_le <| finrank_vectorSpan_range_add_one_le _ _ -set_option backward.isDefEq.respectTransparency false in /-- If the `vectorSpan` of a finite subset of an affinely independent family lies in a submodule with dimension one less than its cardinality, it equals that submodule. -/ @@ -310,7 +298,6 @@ theorem AffineIndependent.vectorSpan_image_finset_eq_of_le_of_card_eq_finrank_ad vectorSpan k (s.image p : Set P) = sm := Submodule.eq_of_le_of_finrank_eq hle <| hi.finrank_vectorSpan_image_finset hc -set_option backward.isDefEq.respectTransparency false in /-- If the `vectorSpan` of a finite affinely independent family lies in a submodule with dimension one less than its cardinality, it equals that submodule. -/ @@ -320,7 +307,6 @@ theorem AffineIndependent.vectorSpan_eq_of_le_of_card_eq_finrank_add_one [Fintyp vectorSpan k (Set.range p) = sm := Submodule.eq_of_le_of_finrank_eq hle <| hi.finrank_vectorSpan hc -set_option backward.isDefEq.respectTransparency false in /-- If the `affineSpan` of a finite subset of an affinely independent family lies in an affine subspace whose direction has dimension one less than its cardinality, it equals that subspace. -/ @@ -337,7 +323,6 @@ theorem AffineIndependent.affineSpan_image_finset_eq_of_le_of_card_eq_finrank_ad rw [direction_affineSpan] at hd ⊢ exact hi.vectorSpan_image_finset_eq_of_le_of_card_eq_finrank_add_one hd hc -set_option backward.isDefEq.respectTransparency false in /-- If the `affineSpan` of a finite affinely independent family lies in an affine subspace whose direction has dimension one less than its cardinality, it equals that subspace. -/ @@ -372,7 +357,6 @@ theorem Affine.Simplex.span_eq_top [FiniteDimensional k V] {n : ℕ} (T : Affine rw [AffineIndependent.affineSpan_eq_top_iff_card_eq_finrank_add_one T.independent, Fintype.card_fin, hrank] -set_option backward.isDefEq.respectTransparency false in /-- The `vectorSpan` of adding a point to a finite-dimensional subspace is finite-dimensional. -/ instance finiteDimensional_vectorSpan_insert (s : AffineSubspace k P) [FiniteDimensional k s.direction] (p : P) : @@ -385,7 +369,6 @@ instance finiteDimensional_vectorSpan_insert (s : AffineSubspace k P) · rw [affineSpan_coe, direction_affineSpan_insert hp₀] infer_instance -set_option backward.isDefEq.respectTransparency false in /-- The direction of the affine span of adding a point to a finite-dimensional subspace is finite-dimensional. -/ instance finiteDimensional_direction_affineSpan_insert (s : AffineSubspace k P) @@ -395,7 +378,6 @@ instance finiteDimensional_direction_affineSpan_insert (s : AffineSubspace k P) variable (k) -set_option backward.isDefEq.respectTransparency false in /-- The `vectorSpan` of adding a point to a set with a finite-dimensional `vectorSpan` is finite-dimensional. -/ instance finiteDimensional_vectorSpan_insert_set (s : Set P) [FiniteDimensional k (vectorSpan k s)] @@ -405,7 +387,6 @@ instance finiteDimensional_vectorSpan_insert_set (s : Set P) [FiniteDimensional rw [← direction_affineSpan, ← affineSpan_insert_affineSpan, direction_affineSpan] exact finiteDimensional_vectorSpan_insert (affineSpan k s) p -set_option backward.isDefEq.respectTransparency false in /-- The direction of the affine span of adding a point to a set with a set with finite-dimensional direction of the `affineSpan` is finite-dimensional. -/ instance finiteDimensional_direction_affineSpan_insert_set (s : Set P) @@ -426,7 +407,6 @@ theorem collinear_iff_rank_le_one (s : Set P) : variable {k} -set_option backward.isDefEq.respectTransparency false in /-- A set of points, whose `vectorSpan` is finite-dimensional, is collinear if and only if their `vectorSpan` has dimension at most `1`. -/ @@ -442,14 +422,12 @@ alias ⟨Collinear.finrank_le_one, _⟩ := collinear_iff_finrank_le_one theorem Collinear.subset {s₁ s₂ : Set P} (hs : s₁ ⊆ s₂) (h : Collinear k s₂) : Collinear k s₁ := (Submodule.rank_mono (vectorSpan_mono k hs)).trans h -set_option backward.isDefEq.respectTransparency false in /-- The `vectorSpan` of collinear points is finite-dimensional. -/ theorem Collinear.finiteDimensional_vectorSpan {s : Set P} (h : Collinear k s) : FiniteDimensional k (vectorSpan k s) := IsNoetherian.iff_fg.1 (IsNoetherian.iff_rank_lt_aleph0.2 (lt_of_le_of_lt h Cardinal.one_lt_aleph0)) -set_option backward.isDefEq.respectTransparency false in /-- The direction of the affine span of collinear points is finite-dimensional. -/ theorem Collinear.finiteDimensional_direction_affineSpan {s : Set P} (h : Collinear k s) : FiniteDimensional k (affineSpan k s).direction := @@ -471,7 +449,6 @@ theorem collinear_singleton (p : P) : Collinear k ({p} : Set P) := by variable {k} -set_option backward.isDefEq.respectTransparency false in /-- Given a point `p₀` in a set of points, that set is collinear if and only if the points can all be expressed as multiples of the same vector, added to `p₀`. -/ @@ -696,20 +673,17 @@ variable (k) in def Coplanar (s : Set P) : Prop := Module.rank k (vectorSpan k s) ≤ 2 -set_option backward.isDefEq.respectTransparency false in /-- The `vectorSpan` of coplanar points is finite-dimensional. -/ theorem Coplanar.finiteDimensional_vectorSpan {s : Set P} (h : Coplanar k s) : FiniteDimensional k (vectorSpan k s) := by refine IsNoetherian.iff_fg.1 (IsNoetherian.iff_rank_lt_aleph0.2 (lt_of_le_of_lt h ?_)) exact Cardinal.lt_aleph0.2 ⟨2, rfl⟩ -set_option backward.isDefEq.respectTransparency false in /-- The direction of the affine span of coplanar points is finite-dimensional. -/ theorem Coplanar.finiteDimensional_direction_affineSpan {s : Set P} (h : Coplanar k s) : FiniteDimensional k (affineSpan k s).direction := (direction_affineSpan k s).symm ▸ h.finiteDimensional_vectorSpan -set_option backward.isDefEq.respectTransparency false in /-- A set of points, whose `vectorSpan` is finite-dimensional, is coplanar if and only if their `vectorSpan` has dimension at most `2`. -/ theorem coplanar_iff_finrank_le_two {s : Set P} [FiniteDimensional k (vectorSpan k s)] : @@ -761,7 +735,6 @@ open AffineSubspace Module Module variable [DivisionRing k] [AddCommGroup V] [Module k V] [AffineSpace V P] -set_option backward.isDefEq.respectTransparency false in /-- Adding a point to a finite-dimensional subspace increases the dimension by at most one. -/ theorem finrank_vectorSpan_insert_le (s : AffineSubspace k P) (p : P) : finrank k (vectorSpan k (insert p (s : Set P))) ≤ finrank k s.direction + 1 := by @@ -802,7 +775,6 @@ theorem finrank_vectorSpan_insert_le_set (s : Set P) (p : P) : ← direction_affineSpan _ s] exact finrank_vectorSpan_insert_le .. -set_option backward.isDefEq.respectTransparency false in /-- Adding a point to a collinear set produces a coplanar set. -/ theorem Collinear.coplanar_insert {s : Set P} (h : Collinear k s) (p : P) : Coplanar k (insert p s) := by diff --git a/Mathlib/LinearAlgebra/AffineSpace/Restrict.lean b/Mathlib/LinearAlgebra/AffineSpace/Restrict.lean index b76a70f9a302b9..95f5a7340452e5 100644 --- a/Mathlib/LinearAlgebra/AffineSpace/Restrict.lean +++ b/Mathlib/LinearAlgebra/AffineSpace/Restrict.lean @@ -36,7 +36,6 @@ instance AffineSubspace.nonempty_map {E : AffineSubspace k P₁} [Ene : Nonempty obtain ⟨x, hx⟩ := id Ene exact ⟨⟨φ x, AffineSubspace.mem_map.mpr ⟨x, hx, rfl⟩⟩⟩ -set_option backward.isDefEq.respectTransparency false in /-- Restrict domain and codomain of an affine map to the given subspaces. -/ def AffineMap.restrict (φ : P₁ →ᵃ[k] P₂) {E : AffineSubspace k P₁} {F : AffineSubspace k P₂} [Nonempty E] [Nonempty F] (hEF : E.map φ ≤ F) : E →ᵃ[k] F := by @@ -59,7 +58,6 @@ theorem AffineMap.restrict.linear_aux {φ : P₁ →ᵃ[k] P₂} {E : AffineSubs rw [← Submodule.map_le_iff_le_comap, ← AffineSubspace.map_direction] exact AffineSubspace.direction_le hEF -set_option backward.isDefEq.respectTransparency false in theorem AffineMap.restrict.linear (φ : P₁ →ᵃ[k] P₂) {E : AffineSubspace k P₁} {F : AffineSubspace k P₂} [Nonempty E] [Nonempty F] (hEF : E.map φ ≤ F) : (φ.restrict hEF).linear = φ.linear.restrict (AffineMap.restrict.linear_aux hEF) := diff --git a/Mathlib/LinearAlgebra/AffineSpace/Simplex/Basic.lean b/Mathlib/LinearAlgebra/AffineSpace/Simplex/Basic.lean index 05203a80cd5fef..33f0aa15954352 100644 --- a/Mathlib/LinearAlgebra/AffineSpace/Simplex/Basic.lean +++ b/Mathlib/LinearAlgebra/AffineSpace/Simplex/Basic.lean @@ -291,7 +291,6 @@ lemma range_faceOpposite_reindex {m n : ℕ} [NeZero m] [NeZero n] (s : Simplex section restrict -set_option backward.isDefEq.respectTransparency false in /-- Restrict an affine simplex to an affine subspace that contains it. -/ @[simps] def restrict {n : ℕ} (s : Affine.Simplex k P n) (S : AffineSubspace k P) @@ -302,7 +301,6 @@ def restrict {n : ℕ} (s : Affine.Simplex k P n) (S : AffineSubspace k P) { points i := ⟨s.points i, hS <| mem_affineSpan _ <| Set.mem_range_self _⟩ independent := AffineIndependent.of_comp S.subtype s.independent } -set_option backward.isDefEq.respectTransparency false in /-- Restricting to `S₁` then mapping to a larger `S₂` is the same as restricting to `S₂`. -/ @[simp] theorem restrict_map_inclusion {n : ℕ} (s : Affine.Simplex k P n) @@ -313,7 +311,6 @@ theorem restrict_map_inclusion {n : ℕ} (s : Affine.Simplex k P n) s.restrict S₂ (hS₁.trans hS₂) := rfl -set_option backward.isDefEq.respectTransparency false in @[simp] theorem map_subtype_restrict {n : ℕ} (S : AffineSubspace k P) [Nonempty S] (s : Affine.Simplex k S n) : @@ -321,7 +318,6 @@ theorem map_subtype_restrict S (affineSpan_le.2 <| by rintro x ⟨y, rfl⟩; exact Subtype.prop _) = s := by rfl -set_option backward.isDefEq.respectTransparency false in /-- Restricting to `S₁` then mapping through the restriction of `f` to `S₁ →ᵃ[k] S₂` is the same as mapping through unrestricted `f`, then restricting to `S₂`. -/ theorem restrict_map_restrict @@ -336,7 +332,6 @@ theorem restrict_map_restrict (AffineSubspace.map_mono f hS₁) |>.trans hfS) := by rfl -set_option backward.isDefEq.respectTransparency false in /-- Restricting to `affineSpan k (Set.range s.points)` can be reversed by mapping through `AffineSubspace.subtype`. -/ @[simp] @@ -344,14 +339,12 @@ theorem restrict_map_subtype {n : ℕ} (s : Affine.Simplex k P n) : (s.restrict _ le_rfl).map (AffineSubspace.subtype _) Subtype.coe_injective = s := rfl -set_option backward.isDefEq.respectTransparency false in lemma restrict_reindex {m n : ℕ} (s : Affine.Simplex k P n) (e : Fin (n + 1) ≃ Fin (m + 1)) {S : AffineSubspace k P} (hS : affineSpan k (Set.range s.points) ≤ S) : letI := Nonempty.map (AffineSubspace.inclusion hS) inferInstance (s.reindex e).restrict S (s.reindex_range_points e ▸ hS) = (s.restrict S hS).reindex e := rfl -set_option backward.isDefEq.respectTransparency false in lemma face_restrict {n : ℕ} (s : Affine.Simplex k P n) {S : AffineSubspace k P} (hS : affineSpan k (Set.range s.points) ≤ S) {fs : Finset (Fin (n + 1))} {m : ℕ} (h : #fs = m + 1) : @@ -363,7 +356,6 @@ lemma face_restrict {n : ℕ} (s : Affine.Simplex k P n) {S : AffineSubspace k P simp_rw [Affine.Simplex.face_points] simp -set_option backward.isDefEq.respectTransparency false in lemma faceOpposite_restrict {n : ℕ} [NeZero n] (s : Affine.Simplex k P n) {S : AffineSubspace k P} (hS : affineSpan k (Set.range s.points) ≤ S) (i : Fin (n + 1)) : letI := Nonempty.map (AffineSubspace.inclusion hS) inferInstance @@ -445,7 +437,6 @@ lemma setInterior_map (I : Set k) {n : ℕ} (s : Simplex k P n) {f : P →ᵃ[k] rw [s.map_points, Set.range_comp, ← AffineSubspace.map_span, AffineSubspace.mem_map] exact ⟨q, (Set.mem_of_mem_of_subset hq s.setInterior_subset_affineSpan), hqp⟩ -set_option backward.isDefEq.respectTransparency false in lemma setInterior_restrict (I : Set k) {n : ℕ} (s : Simplex k P n) {S : AffineSubspace k P} (hS : affineSpan k (Set.range s.points) ≤ S) : letI := Nonempty.map (AffineSubspace.inclusion hS) inferInstance @@ -608,14 +599,12 @@ lemma closedInterior_map {n : ℕ} (s : Simplex k P n) {f : P →ᵃ[k] P₂} (h (s.map f hf).closedInterior = f '' s.closedInterior := s.setInterior_map _ hf -set_option backward.isDefEq.respectTransparency false in lemma interior_restrict {n : ℕ} (s : Simplex k P n) {S : AffineSubspace k P} (hS : affineSpan k (Set.range s.points) ≤ S) : letI := Nonempty.map (AffineSubspace.inclusion hS) inferInstance (s.restrict S hS).interior = S.subtype ⁻¹' s.interior := s.setInterior_restrict _ hS -set_option backward.isDefEq.respectTransparency false in lemma closedInterior_restrict {n : ℕ} (s : Simplex k P n) {S : AffineSubspace k P} (hS : affineSpan k (Set.range s.points) ≤ S) : letI := Nonempty.map (AffineSubspace.inclusion hS) inferInstance diff --git a/Mathlib/LinearAlgebra/AffineSpace/Simplex/Centroid.lean b/Mathlib/LinearAlgebra/AffineSpace/Simplex/Centroid.lean index 96592be9453dd3..7a5465fd0ebf70 100644 --- a/Mathlib/LinearAlgebra/AffineSpace/Simplex/Centroid.lean +++ b/Mathlib/LinearAlgebra/AffineSpace/Simplex/Centroid.lean @@ -215,7 +215,6 @@ theorem centroid_reindex {m n : ℕ} (s : Simplex k P m) subst h_eq convert Finset.univ.affineCombination_map e.toEmbedding _ _ <;> simp [Function.comp_assoc] -set_option backward.isDefEq.respectTransparency false in theorem centroid_restrict [CharZero k] {n : ℕ} (s : Simplex k P n) (S : AffineSubspace k P) (hS : affineSpan k (Set.range s.points) ≤ S) : haveI := Nonempty.map (AffineSubspace.inclusion hS) inferInstance @@ -399,7 +398,6 @@ theorem faceOppositeCentroid_eq_smul_vsub_vadd_point [CharZero k] (s : Simplex k rw [sum_centroidWeights_eq_one_of_card_ne_zero] simp -set_option backward.isDefEq.respectTransparency false in @[simp] theorem faceOppositeCentroid_restrict [CharZero k] (s : Simplex k P n) (S : AffineSubspace k P) (hS : affineSpan k (Set.range s.points) ≤ S) {i : Fin (n + 1)} : haveI := Nonempty.map (AffineSubspace.inclusion hS) inferInstance @@ -439,7 +437,6 @@ theorem median_map [CharZero k] {V₂ P₂ : Type*} [AddCommGroup V₂] [Module (s.map f hf).median i = (s.median i).map f := by simp [median, map_span, Set.image_pair] -set_option backward.isDefEq.respectTransparency false in theorem median_restrict [CharZero k] (s : Simplex k P n) (i : Fin (n + 1)) (S : AffineSubspace k P) (hS : affineSpan k (Set.range s.points) ≤ S) : haveI := Nonempty.map (AffineSubspace.inclusion hS) inferInstance @@ -585,7 +582,6 @@ theorem affineSpan_range_medial [CharZero k] (s : Simplex k P n) : congrm ∃ a b, ?_ = v simp [← smul_neg] -set_option backward.isDefEq.respectTransparency false in theorem medial_restrict [CharZero k] (s : Simplex k P n) (S : AffineSubspace k P) (hS : affineSpan k (Set.range s.points) ≤ S) : haveI := Nonempty.map (AffineSubspace.inclusion hS) inferInstance diff --git a/Mathlib/LinearAlgebra/Basis/Exact.lean b/Mathlib/LinearAlgebra/Basis/Exact.lean index 9673184a97237d..7fd1838c54644c 100644 --- a/Mathlib/LinearAlgebra/Basis/Exact.lean +++ b/Mathlib/LinearAlgebra/Basis/Exact.lean @@ -112,7 +112,6 @@ end section include hfg -set_option backward.isDefEq.respectTransparency false in lemma Submodule.linearProjOfIsCompl_comp_surjective_of_exact {p q : Submodule R M} (hpq : IsCompl p q) (hmap : Submodule.map g q = ⊤) : @@ -124,7 +123,6 @@ lemma Submodule.linearProjOfIsCompl_comp_surjective_of_exact obtain ⟨a, haq, ha⟩ : g x.val ∈ q.map g := by rwa [hmap] exact ⟨x - a, by simp [← ha], by simpa⟩ -set_option backward.isDefEq.respectTransparency false in lemma Submodule.linearProjOfIsCompl_comp_bijective_of_exact (hf : Function.Injective f) {p q : Submodule R M} (hpq : IsCompl p q) (hker : Disjoint (LinearMap.ker g) q) (hmap : Submodule.map g q = ⊤) : diff --git a/Mathlib/LinearAlgebra/Basis/Fin.lean b/Mathlib/LinearAlgebra/Basis/Fin.lean index 9383619c631e23..2c92d83b9acf15 100644 --- a/Mathlib/LinearAlgebra/Basis/Fin.lean +++ b/Mathlib/LinearAlgebra/Basis/Fin.lean @@ -38,7 +38,6 @@ namespace Basis section Fin -set_option backward.isDefEq.respectTransparency false in /-- Let `b` be a basis for a submodule `N` of `M`. If `y : M` is linear independent of `N` and `y` and `N` together span the whole of `M`, then there is a basis for `M` whose basis vectors are given by `Fin.cons y b`. -/ @@ -64,7 +63,6 @@ theorem coe_mkFinCons {n : ℕ} {N : Submodule R M} (y : M) (b : Basis (Fin n) R unfold mkFinCons exact coe_mk (v := Fin.cons y (N.subtype ∘ b)) _ _ -set_option backward.isDefEq.respectTransparency false in /-- Let `b` be a basis for a submodule `N ≤ O`. If `y ∈ O` is linear independent of `N` and `y` and `N` together span the whole of `O`, then there is a basis for `O` whose basis vectors are given by `Fin.cons y b`. -/ @@ -75,7 +73,6 @@ noncomputable def mkFinConsOfLE {n : ℕ} {N O : Submodule R M} (y : M) (yO : y (fun c x hc hx => hli c x (Submodule.mem_comap.mp hc) (congr_arg ((↑) : O → M) hx)) fun z => hsp z z.2 -set_option backward.isDefEq.respectTransparency false in @[simp] theorem coe_mkFinConsOfLE {n : ℕ} {N O : Submodule R M} (y : M) (yO : y ∈ O) (b : Basis (Fin n) R N) (hNO : N ≤ O) (hli : ∀ (c : R), ∀ x ∈ N, c • y + x = 0 → c = 0) diff --git a/Mathlib/LinearAlgebra/Basis/VectorSpace.lean b/Mathlib/LinearAlgebra/Basis/VectorSpace.lean index a5bc3269df6a48..b9e1cea57f2518 100644 --- a/Mathlib/LinearAlgebra/Basis/VectorSpace.lean +++ b/Mathlib/LinearAlgebra/Basis/VectorSpace.lean @@ -276,7 +276,6 @@ theorem LinearMap.leftInverse_apply_of_inj {f : V →ₗ[K] V'} (h_inj : LinearM f.leftInverse (f x) = x := LinearMap.ext_iff.mp (f.leftInverse_comp_of_inj h_inj) x -set_option backward.isDefEq.respectTransparency false in theorem Submodule.exists_isCompl (p : Submodule K V) : ∃ q : Submodule K V, IsCompl p q := ⟨LinearMap.ker p.subtype.leftInverse, LinearMap.isCompl_of_proj <| LinearMap.leftInverse_apply_of_inj p.ker_subtype⟩ @@ -284,7 +283,6 @@ theorem Submodule.exists_isCompl (p : Submodule K V) : ∃ q : Submodule K V, Is instance Submodule.complementedLattice : ComplementedLattice (Submodule K V) := ⟨Submodule.exists_isCompl⟩ -set_option backward.isDefEq.respectTransparency false in /-- Any linear map `f : p →ₗ[K] V'` defined on a subspace `p` can be extended to the whole space. -/ theorem LinearMap.exists_extend {p : Submodule K V} (f : p →ₗ[K] V') : @@ -343,7 +341,6 @@ variable {K : Type*} {V : Type*} [Field K] [AddCommGroup V] [Module K V] variable {f : V →ₗ[K] K} {v : V} -set_option backward.isDefEq.respectTransparency false in /-- In a vector space, given a nonzero linear form `f`, a nonzero vector `v` such that `f v ≠ 0`, there exists a basis `b` with an index `i` @@ -386,7 +383,6 @@ theorem exists_basis_of_pairing_ne_zero apply Or.resolve_left (Set.mem_insert_iff.mpr j.prop) simp [← hi, b, Subtype.coe_inj, Ne.symm h] -set_option backward.isDefEq.respectTransparency false in /-- In a vector space, given a nonzero linear form `f`, a nonzero vector `v` such that `f v = 0`, there exists a basis `b` with two distinct indices `i`, `j` diff --git a/Mathlib/LinearAlgebra/BilinearForm/Orthogonal.lean b/Mathlib/LinearAlgebra/BilinearForm/Orthogonal.lean index 3e15258dcc24bc..0f42be79c7aaf4 100644 --- a/Mathlib/LinearAlgebra/BilinearForm/Orthogonal.lean +++ b/Mathlib/LinearAlgebra/BilinearForm/Orthogonal.lean @@ -260,7 +260,6 @@ open Module Submodule variable {B : BilinForm K V} -set_option backward.isDefEq.respectTransparency false in theorem finrank_add_finrank_orthogonal' (W : Submodule K V) : finrank K W + finrank K (B.orthogonal W) = finrank K V + finrank K (W ⊓ B.ker : Subspace K V) := by diff --git a/Mathlib/LinearAlgebra/CliffordAlgebra/Even.lean b/Mathlib/LinearAlgebra/CliffordAlgebra/Even.lean index 3b8c4931fbc6af..18d5455a583cfb 100644 --- a/Mathlib/LinearAlgebra/CliffordAlgebra/Even.lean +++ b/Mathlib/LinearAlgebra/CliffordAlgebra/Even.lean @@ -202,7 +202,6 @@ def aux (f : EvenHom Q A) : CliffordAlgebra.even Q →ₗ[R] A := by refine ?_ ∘ₗ (even Q).val.toLinearMap exact LinearMap.fst R _ _ ∘ₗ foldr Q (fFold f) (fFold_fFold f) (1, 0) -set_option backward.isDefEq.respectTransparency false in @[simp] theorem aux_one : aux f 1 = 1 := congr_arg Prod.fst (foldr_one _ _ _ _) @@ -215,7 +214,6 @@ theorem aux_ι (m₁ m₂ : M) : aux f ((even.ι Q).bilin m₁ m₂) = f.bilin m rw [foldr_ι, foldr_ι] exact mul_one _) -set_option backward.isDefEq.respectTransparency false in @[simp] theorem aux_algebraMap (r) : aux f (algebraMap R (even Q) r) = algebraMap R A r := diff --git a/Mathlib/LinearAlgebra/Dimension/Constructions.lean b/Mathlib/LinearAlgebra/Dimension/Constructions.lean index 1266bd01a45645..fbe86213994e83 100644 --- a/Mathlib/LinearAlgebra/Dimension/Constructions.lean +++ b/Mathlib/LinearAlgebra/Dimension/Constructions.lean @@ -48,7 +48,6 @@ section Quotient variable [Ring R] [CommRing S] [AddCommGroup M] [AddCommGroup M'] [AddCommGroup M₁] variable [Module R M] -set_option backward.isDefEq.respectTransparency false in theorem LinearIndependent.sumElim_of_quotient {M' : Submodule R M} {ι₁ ι₂} {f : ι₁ → M'} (hf : LinearIndependent R f) (g : ι₂ → M) (hg : LinearIndependent R (Submodule.Quotient.mk (p := M') ∘ g)) : diff --git a/Mathlib/LinearAlgebra/Dimension/DivisionRing.lean b/Mathlib/LinearAlgebra/Dimension/DivisionRing.lean index 4b9a11da9b93c2..5d895922609122 100644 --- a/Mathlib/LinearAlgebra/Dimension/DivisionRing.lean +++ b/Mathlib/LinearAlgebra/Dimension/DivisionRing.lean @@ -53,7 +53,6 @@ theorem Module.Basis.finite_ofVectorSpaceIndex_of_rank_lt_aleph0 (h : Module.ran (Basis.ofVectorSpaceIndex K V).Finite := Set.finite_def.2 <| (Basis.ofVectorSpace K V).nonempty_fintype_index_of_rank_lt_aleph0 h -set_option backward.isDefEq.respectTransparency false in /-- Also see `rank_quotient_add_rank`. -/ theorem rank_quotient_add_rank_of_divisionRing (p : Submodule K V) : Module.rank K (V ⧸ p) + Module.rank K p = Module.rank K V := by @@ -76,7 +75,6 @@ variable [AddCommGroup V₃] [Module K V₃] open LinearMap -set_option backward.isDefEq.respectTransparency false in /-- This is mostly an auxiliary lemma for `Submodule.rank_sup_add_rank_inf_eq`. -/ theorem rank_add_rank_split (db : V₂ →ₗ[K] V) (eb : V₃ →ₗ[K] V) (cd : V₁ →ₗ[K] V₂) (ce : V₁ →ₗ[K] V₃) (hde : ⊤ ≤ LinearMap.range db ⊔ LinearMap.range eb) (hgd : ker cd = ⊥) diff --git a/Mathlib/LinearAlgebra/Dimension/Finite.lean b/Mathlib/LinearAlgebra/Dimension/Finite.lean index 4efecc1010ff97..b65336015f8d61 100644 --- a/Mathlib/LinearAlgebra/Dimension/Finite.lean +++ b/Mathlib/LinearAlgebra/Dimension/Finite.lean @@ -434,7 +434,6 @@ lemma Submodule.bot_eq_top_of_rank_eq_zero (h : Module.rank R M = 0) : (⊥ : Su rw [rank_zero_iff] at h subsingleton -set_option backward.isDefEq.respectTransparency false in /-- See `rank_subsingleton` for the reason that `Nontrivial R` is needed. -/ @[simp] theorem Submodule.rank_eq_zero {S : Submodule R M} : Module.rank R S = 0 ↔ S = ⊥ := diff --git a/Mathlib/LinearAlgebra/Dimension/FreeAndStrongRankCondition.lean b/Mathlib/LinearAlgebra/Dimension/FreeAndStrongRankCondition.lean index 2f1333bdf3d307..6f248047572d50 100644 --- a/Mathlib/LinearAlgebra/Dimension/FreeAndStrongRankCondition.lean +++ b/Mathlib/LinearAlgebra/Dimension/FreeAndStrongRankCondition.lean @@ -118,7 +118,6 @@ theorem rank_eq_one_iff [Module.Free K V] : haveI := b.repr.toEquiv.subsingleton exact h (Subsingleton.elim _ _) -set_option backward.isDefEq.respectTransparency false in /-- A submodule has dimension at most `1` if and only if there is a single vector in the submodule such that the submodule is contained in its span. -/ @@ -127,7 +126,6 @@ theorem rank_submodule_le_one_iff (s : Submodule K V) [Module.Free K s] : simp_rw [rank_le_one_iff, le_span_singleton_iff] simp -set_option backward.isDefEq.respectTransparency false in /-- A submodule has dimension `1` if and only if there is a single non-zero vector in the submodule such that the submodule is contained in its span. -/ @@ -143,7 +141,6 @@ theorem rank_submodule_eq_one_iff (s : Submodule K V) [Module.Free K s] : · obtain ⟨r, hr⟩ := h v hv exact ⟨r, by rwa [Subtype.ext_iff, coe_smul]⟩ -set_option backward.isDefEq.respectTransparency false in /-- A submodule has dimension at most `1` if and only if there is a single vector, not necessarily in the submodule, such that the submodule is contained in its span. -/ @@ -159,7 +156,6 @@ theorem rank_submodule_le_one_iff' (s : Submodule K V) [Module.Free K s] : simpa [b.mk_eq_rank''] using b.linearIndependent.map' _ (ker_inclusion _ _ h) |>.cardinal_le_rank.trans (rank_span_le {v₀}) -set_option backward.isDefEq.respectTransparency false in theorem Submodule.rank_le_one_iff_isPrincipal (W : Submodule K V) [Module.Free K W] : Module.rank K W ≤ 1 ↔ W.IsPrincipal := by simp only [rank_le_one_iff, Submodule.isPrincipal_iff, le_antisymm_iff, le_span_singleton_iff, diff --git a/Mathlib/LinearAlgebra/Dimension/LinearMap.lean b/Mathlib/LinearAlgebra/Dimension/LinearMap.lean index c263611fb4d84e..6a04777c2ea4d9 100644 --- a/Mathlib/LinearAlgebra/Dimension/LinearMap.lean +++ b/Mathlib/LinearAlgebra/Dimension/LinearMap.lean @@ -98,7 +98,6 @@ theorem rank_finset_sum_le {η} (s : Finset η) (f : η → V →ₗ[K] V') : @Finset.sum_hom_rel _ _ _ _ _ (fun a b => rank a ≤ b) f (fun d => rank (f d)) s (le_of_eq rank_zero) fun _ _ _ h => le_trans (rank_add_le _ _) (by gcongr) -set_option backward.isDefEq.respectTransparency false in theorem le_rank_iff_exists_linearIndependent {c : Cardinal} {f : V →ₗ[K] V'} : c ≤ rank f ↔ ∃ s : Set V, Cardinal.lift.{v'} #s = Cardinal.lift.{v} c ∧ LinearIndepOn K f s := by diff --git a/Mathlib/LinearAlgebra/Dimension/Localization.lean b/Mathlib/LinearAlgebra/Dimension/Localization.lean index 8200d9b4a06d68..dde2860c6aba15 100644 --- a/Mathlib/LinearAlgebra/Dimension/Localization.lean +++ b/Mathlib/LinearAlgebra/Dimension/Localization.lean @@ -87,7 +87,6 @@ theorem exists_set_linearIndependent_of_isDomain [IsDomain R] : IsLocalization.rank_eq (FractionRing R) R⁰ le_rfl, IsLocalizedModule.lift_rank_eq R⁰ (LocalizedModule.mkLinearMap R⁰ M) le_rfl] -set_option backward.isDefEq.respectTransparency false in /-- The **rank-nullity theorem** for commutative domains. Also see `rank_quotient_add_rank`. -/ theorem rank_quotient_add_rank_of_isDomain [IsDomain R] (M' : Submodule R M) : Module.rank R (M ⧸ M') + Module.rank R M' = Module.rank R M := by diff --git a/Mathlib/LinearAlgebra/Dimension/RankNullity.lean b/Mathlib/LinearAlgebra/Dimension/RankNullity.lean index 82c7aeaeeb3ac5..a302292d05210b 100644 --- a/Mathlib/LinearAlgebra/Dimension/RankNullity.lean +++ b/Mathlib/LinearAlgebra/Dimension/RankNullity.lean @@ -163,7 +163,6 @@ theorem Submodule.exists_smul_notMem_of_rank_lt {N : Submodule R M} open Cardinal Basis Submodule Function Set LinearMap -set_option backward.isDefEq.respectTransparency false in theorem Submodule.rank_sup_add_rank_inf_eq (s t : Submodule R M) : Module.rank R (s ⊔ t : Submodule R M) + Module.rank R (s ⊓ t : Submodule R M) = Module.rank R s + Module.rank R t := by @@ -220,7 +219,6 @@ lemma Submodule.finrank_quotient [Module.Finite R M] {S : Type*} [Ring S] [SMul rw [← (N.restrictScalars R).finrank_quotient_add_finrank] exact Nat.eq_sub_of_add_eq rfl -set_option backward.isDefEq.respectTransparency false in lemma Submodule.disjoint_ker_of_finrank_le [IsDomain R] [IsTorsionFree R M] {N : Type*} [AddCommGroup N] [Module R N] {L : Submodule R M} [Module.Finite R L] (f : M →ₗ[R] N) (h : finrank R L ≤ finrank R (L.map f)) : diff --git a/Mathlib/LinearAlgebra/Dimension/StrongRankCondition.lean b/Mathlib/LinearAlgebra/Dimension/StrongRankCondition.lean index cd29f4d6e8ceeb..1189421e069d77 100644 --- a/Mathlib/LinearAlgebra/Dimension/StrongRankCondition.lean +++ b/Mathlib/LinearAlgebra/Dimension/StrongRankCondition.lean @@ -404,7 +404,6 @@ def Submodule.inductionOnRank {R M} [Ring R] [StrongRankCondition R] [AddCommGro Submodule.inductionOnRankAux b P ih (Fintype.card ι) N fun hs hli => by simpa using b.card_le_card_of_linearIndependent hli -set_option backward.isDefEq.respectTransparency false in /-- If `S` a module-finite free `R`-algebra, then the `R`-rank of a nonzero `R`-free ideal `I` of `S` is the same as the rank of `S`. -/ theorem Ideal.rank_eq {R S : Type*} [CommRing R] [StrongRankCondition R] [Ring S] [IsDomain S] diff --git a/Mathlib/LinearAlgebra/Dual/Lemmas.lean b/Mathlib/LinearAlgebra/Dual/Lemmas.lean index 8181cb6569d2dc..b669fbdaa6d7bb 100644 --- a/Mathlib/LinearAlgebra/Dual/Lemmas.lean +++ b/Mathlib/LinearAlgebra/Dual/Lemmas.lean @@ -437,7 +437,6 @@ theorem dualAnnihilator_inj {W W' : Subspace K V} : W.dualAnnihilator = W'.dualAnnihilator ↔ W = W' := ⟨fun h ↦ (dualAnnihilatorGci K V).l_injective h, congr_arg _⟩ -set_option backward.isDefEq.respectTransparency false in /-- Given a subspace `W` of `V` and an element of its dual `φ`, `dualLift W φ` is an arbitrary extension of `φ` to an element of the dual of `V`. That is, `dualLift W φ` sends `w ∈ W` to `φ x` and `x` in a chosen complement of `W` to `0`. -/ @@ -446,7 +445,6 @@ noncomputable def dualLift (W : Subspace K V) : Module.Dual K W →ₗ[K] Module variable {W : Subspace K V} -set_option backward.isDefEq.respectTransparency false in @[simp] theorem dualLift_of_subtype {φ : Module.Dual K W} (w : W) : W.dualLift φ (w : V) = φ w := congr_arg φ <| LinearMap.leftInverse_apply_of_inj W.ker_subtype _ @@ -529,7 +527,6 @@ noncomputable def quotDualEquivAnnihilator (W : Subspace K V) : (Module.Dual K V ⧸ LinearMap.range W.dualLift) ≃ₗ[K] W.dualAnnihilator := LinearEquiv.quotEquivOfQuotEquiv <| LinearEquiv.trans W.quotAnnihilatorEquiv W.dualEquivDual -set_option backward.isDefEq.respectTransparency false in open scoped Classical in /-- The quotient by a subspace is isomorphic to its dual annihilator. -/ noncomputable def quotEquivAnnihilator (W : Subspace K V) : (V ⧸ W) ≃ₗ[K] W.dualAnnihilator := @@ -680,7 +677,6 @@ theorem flip_quotDualCoannihilatorToDual_injective (W : Submodule R (Dual R M)) Function.Injective W.quotDualCoannihilatorToDual.flip := fun _ _ he ↦ Subtype.ext <| LinearMap.ext fun m ↦ DFunLike.congr_fun he ⟦m⟧ -set_option backward.isDefEq.respectTransparency false in open LinearMap in theorem quotDualCoannihilatorToDual_nondegenerate (W : Submodule R (Dual R M)) : W.quotDualCoannihilatorToDual.Nondegenerate := by @@ -699,7 +695,6 @@ theorem range_dualMap_eq_dualAnnihilator_ker_of_surjective (f : M →ₗ[R] M') ((f.quotKerEquivOfSurjective hf).dualMap.range_comp _).trans (LinearMap.ker f).range_dualMap_mkQ_eq -set_option backward.isDefEq.respectTransparency false in -- Note, this can be specialized to the case where `R` is an injective `R`-module, or when -- `f.coker` is a projective `R`-module. theorem range_dualMap_eq_dualAnnihilator_ker_of_subtype_range_surjective (f : M →ₗ[R] M') @@ -798,7 +793,6 @@ theorem dualMap_surjective_of_injective {f : V₁ →ₗ[K] V₂} (hf : Function have ⟨f', hf'⟩ := f.exists_leftInverse_of_injective (ker_eq_bot.mpr hf) ⟨φ.comp f', ext fun x ↦ congr(φ <| $hf' x)⟩ -set_option backward.isDefEq.respectTransparency false in theorem range_dualMap_eq_dualAnnihilator_ker (f : V₁ →ₗ[K] V₂) : LinearMap.range f.dualMap = (LinearMap.ker f).dualAnnihilator := range_dualMap_eq_dualAnnihilator_ker_of_subtype_range_surjective f <| @@ -822,7 +816,6 @@ theorem dualPairing_eq (W : Subspace K V₁) : ext rfl -set_option backward.isDefEq.respectTransparency false in theorem dualPairing_nondegenerate (W : Subspace K V₁) : W.dualPairing.Nondegenerate := by constructor · rw [LinearMap.separatingLeft_iff_ker_eq_bot, dualPairing_eq] @@ -901,7 +894,6 @@ open Module LinearMap namespace LinearMap -set_option backward.isDefEq.respectTransparency false in @[simp] theorem finrank_range_dualMap_eq_finrank_range (f : V₁ →ₗ[K] V₂) : finrank K (LinearMap.range f.dualMap) = finrank K (LinearMap.range f) := by @@ -960,19 +952,16 @@ namespace Subspace variable {K V : Type*} [Field K] [AddCommGroup V] [Module K V] -set_option backward.isDefEq.respectTransparency false in theorem quotDualCoannihilatorToDual_bijective (W : Subspace K (Dual K V)) [FiniteDimensional K W] : Function.Bijective W.quotDualCoannihilatorToDual := ⟨W.quotDualCoannihilatorToDual_injective, letI : AddCommGroup W := inferInstance flip_injective_iff₂.mp W.flip_quotDualCoannihilatorToDual_injective⟩ -set_option backward.isDefEq.respectTransparency false in theorem flip_quotDualCoannihilatorToDual_bijective (W : Subspace K (Dual K V)) [FiniteDimensional K W] : Function.Bijective W.quotDualCoannihilatorToDual.flip := letI : AddCommGroup W := inferInstance flip_bijective_iff₂.mpr W.quotDualCoannihilatorToDual_bijective -set_option backward.isDefEq.respectTransparency false in theorem dualCoannihilator_dualAnnihilator_eq {W : Subspace K (Dual K V)} [FiniteDimensional K W] : W.dualCoannihilator.dualAnnihilator = W := let e := (LinearEquiv.ofBijective _ W.flip_quotDualCoannihilatorToDual_bijective).trans @@ -981,13 +970,11 @@ theorem dualCoannihilator_dualAnnihilator_eq {W : Subspace K (Dual K V)} [Finite haveI : FiniteDimensional K W.dualCoannihilator.dualAnnihilator := LinearEquiv.finiteDimensional e (eq_of_le_of_finrank_eq W.le_dualCoannihilator_dualAnnihilator e.finrank_eq).symm -set_option backward.isDefEq.respectTransparency false in theorem finiteDimensional_quot_dualCoannihilator_iff {W : Submodule K (Dual K V)} : FiniteDimensional K (V ⧸ W.dualCoannihilator) ↔ FiniteDimensional K W := ⟨fun _ ↦ FiniteDimensional.of_injective _ W.flip_quotDualCoannihilatorToDual_injective, fun _ ↦ FiniteDimensional.of_injective _ W.quotDualCoannihilatorToDual_injective⟩ -set_option backward.isDefEq.respectTransparency false in open OrderDual in /-- For any vector space, `dualAnnihilator` and `dualCoannihilator` gives an antitone order isomorphism between the finite-codimensional subspaces in the vector space and the @@ -1014,7 +1001,6 @@ def orderIsoFiniteDimensional [FiniteDimensional K V] : right_inv _ := dualCoannihilator_dualAnnihilator_eq map_rel_iff' := dualAnnihilator_le_dualAnnihilator_iff -set_option backward.isDefEq.respectTransparency false in open Submodule in theorem dualAnnihilator_dualAnnihilator_eq_map (W : Subspace K V) [FiniteDimensional K W] : W.dualAnnihilator.dualAnnihilator = W.map (Dual.eval K V) := by diff --git a/Mathlib/LinearAlgebra/Eigenspace/Basic.lean b/Mathlib/LinearAlgebra/Eigenspace/Basic.lean index 6c72ef181ae011..a48df9e5f8f438 100644 --- a/Mathlib/LinearAlgebra/Eigenspace/Basic.lean +++ b/Mathlib/LinearAlgebra/Eigenspace/Basic.lean @@ -82,13 +82,11 @@ lemma mem_genEigenspace {f : End R M} {μ : R} {k : ℕ∞} {x : M} : simp_rw [genEigenspace, OrderHom.coe_mk, LinearMap.mem_ker, iSup_subtype', Submodule.mem_iSup_of_directed _ this, LinearMap.mem_ker, Subtype.exists, exists_prop] -set_option backward.isDefEq.respectTransparency false in lemma genEigenspace_directed {f : End R M} {μ : R} {k : ℕ∞} : Directed (· ≤ ·) (fun l : {l : ℕ // l ≤ k} ↦ f.genEigenspace μ l) := by have aux : Monotone ((↑) : {l : ℕ // l ≤ k} → ℕ∞) := fun x y h ↦ by simpa using h exact ((genEigenspace f μ).monotone.comp aux).directed_le -set_option backward.isDefEq.respectTransparency false in lemma mem_genEigenspace_nat {f : End R M} {μ : R} {k : ℕ} {x : M} : x ∈ f.genEigenspace μ k ↔ x ∈ LinearMap.ker ((f - μ • 1) ^ k) := by rw [mem_genEigenspace] @@ -116,7 +114,6 @@ lemma genEigenspace_top (f : End R M) (μ : R) : rw [genEigenspace_eq_iSup_genEigenspace_nat, iSup_subtype] simp only [le_top, iSup_pos] -set_option backward.isDefEq.respectTransparency false in lemma genEigenspace_one {f : End R M} {μ : R} : f.genEigenspace μ 1 = LinearMap.ker (f - μ • 1) := by rw [← Nat.cast_one, genEigenspace_nat, pow_one] @@ -127,7 +124,6 @@ lemma mem_genEigenspace_one {f : End R M} {μ : R} {x : M} : rw [genEigenspace_one, LinearMap.mem_ker, LinearMap.sub_apply, sub_eq_zero, LinearMap.smul_apply, Module.End.one_apply] -set_option backward.isDefEq.respectTransparency false in -- `simp` can prove this using `genEigenspace_zero` lemma mem_genEigenspace_zero {f : End R M} {μ : R} {x : M} : x ∈ f.genEigenspace μ 0 ↔ x = 0 := by @@ -254,7 +250,6 @@ or the infimum of these ranges if `k = ∞`. -/ def genEigenrange (f : End R M) (μ : R) (k : ℕ∞) : Submodule R M := ⨅ l : ℕ, ⨅ (_ : l ≤ k), LinearMap.range ((f - μ • 1) ^ l) -set_option backward.isDefEq.respectTransparency false in lemma genEigenrange_nat {f : End R M} {μ : R} {k : ℕ} : f.genEigenrange μ k = LinearMap.range ((f - μ • 1) ^ k) := by ext x @@ -267,7 +262,6 @@ lemma genEigenrange_nat {f : End R M} {μ : R} {k : ℕ} : rw [this, pow_add] exact ⟨_, rfl⟩ -set_option backward.isDefEq.respectTransparency false in /-- The exponent of a generalized eigenvalue is never 0. -/ lemma HasUnifEigenvalue.exp_ne_zero {f : End R M} {μ : R} {k : ℕ} (h : f.HasUnifEigenvalue μ k) : k ≠ 0 := by @@ -299,7 +293,6 @@ lemma genEigenspace_le_genEigenspace_maxUnifEigenspaceIndex [IsNoetherian R M] ( rw [← genEigenspace_top_eq_maxUnifEigenspaceIndex] exact (f.genEigenspace μ).monotone le_top -set_option backward.isDefEq.respectTransparency false in /-- Generalized eigenspaces for exponents at least `finrank K V` are equal to each other. -/ theorem genEigenspace_eq_genEigenspace_maxUnifEigenspaceIndex_of_le [IsNoetherian R M] (f : End R M) (μ : R) {k : ℕ} (hk : maxUnifEigenspaceIndex f μ ≤ k) : @@ -350,7 +343,6 @@ lemma maxUnifEigenspaceIndex_le_finrank [FiniteDimensional K V] (f : End K V) ( rw [genEigenspace_nat, genEigenspace_nat] apply ker_pow_le_ker_pow_finrank -set_option backward.isDefEq.respectTransparency false in /-- Every generalized eigenvector is a generalized eigenvector for exponent `finrank K V`. (Lemma 8.20 of [axler2024]) -/ lemma genEigenspace_le_genEigenspace_finrank [FiniteDimensional K V] (f : End K V) @@ -361,7 +353,6 @@ lemma genEigenspace_le_genEigenspace_finrank [FiniteDimensional K V] (f : End K rw [genEigenspace_top_eq_maxUnifEigenspaceIndex] exact (f.genEigenspace _).monotone <| by simpa using maxUnifEigenspaceIndex_le_finrank f μ -set_option backward.isDefEq.respectTransparency false in /-- Generalized eigenspaces for exponents at least `finrank K V` are equal to each other. -/ theorem genEigenspace_eq_genEigenspace_finrank_of_le [FiniteDimensional K V] (f : End K V) (μ : K) {k : ℕ} (hk : finrank K V ≤ k) : @@ -414,7 +405,6 @@ lemma eigenspace_def {f : End R M} {μ : R} : f.eigenspace μ = LinearMap.ker (f - μ • 1) := by rw [eigenspace, genEigenspace_one] -set_option backward.isDefEq.respectTransparency false in @[simp] theorem eigenspace_zero (f : End R M) : f.eigenspace 0 = LinearMap.ker f := by simp only [eigenspace, ← Nat.cast_one (R := ℕ∞), genEigenspace_zero_nat, pow_one] @@ -552,7 +542,6 @@ theorem maxGenEigenspace_eq_maxGenEigenspace_zero (f : End R M) (μ : R) : maxGenEigenspace f μ = maxGenEigenspace (f - μ • 1) 0 := by ext; simp -set_option backward.isDefEq.respectTransparency false in /-- A generalized eigenvalue for some exponent `k` is also a generalized eigenvalue for exponents larger than `k`. -/ theorem hasGenEigenvalue_of_hasGenEigenvalue_of_le {f : End R M} {μ : R} {k : ℕ} @@ -560,7 +549,6 @@ theorem hasGenEigenvalue_of_hasGenEigenvalue_of_le {f : End R M} {μ : R} {k : f.HasGenEigenvalue μ m := hk.le <| by simpa using hm -set_option backward.isDefEq.respectTransparency false in /-- The eigenspace is a subspace of the generalized eigenspace. -/ theorem eigenspace_le_genEigenspace {f : End R M} {μ : R} {k : ℕ} (hk : 0 < k) : f.eigenspace μ ≤ f.genEigenspace μ k := @@ -570,7 +558,6 @@ theorem eigenspace_le_maxGenEigenspace {f : End R M} {μ : R} : f.eigenspace μ ≤ f.maxGenEigenspace μ := (f.genEigenspace _).monotone <| OrderTop.le_top _ -set_option backward.isDefEq.respectTransparency false in /-- All eigenvalues are generalized eigenvalues. -/ theorem hasGenEigenvalue_of_hasEigenvalue {f : End R M} {μ : R} {k : ℕ} (hk : 0 < k) (hμ : f.HasEigenvalue μ) : f.HasGenEigenvalue μ k := @@ -581,7 +568,6 @@ theorem hasEigenvalue_of_hasGenEigenvalue {f : End R M} {μ : R} {k : ℕ} (hμ : f.HasGenEigenvalue μ k) : f.HasEigenvalue μ := hμ.lt zero_lt_one -set_option backward.isDefEq.respectTransparency false in /-- Generalized eigenvalues are actually just eigenvalues. -/ theorem hasGenEigenvalue_iff_hasEigenvalue {f : End R M} {μ : R} {k : ℕ} (hk : 0 < k) : f.HasGenEigenvalue μ k ↔ f.HasEigenvalue μ := by @@ -616,7 +602,6 @@ lemma isNilpotent_restrict_maxGenEigenspace_sub_algebraMap [IsNoetherian R M] (f _ (isNilpotent_restrict_genEigenspace_nat f μ (maxUnifEigenspaceIndex f μ)) rw [maxGenEigenspace_eq] -set_option backward.isDefEq.respectTransparency false in lemma disjoint_genEigenspace [IsDomain R] [IsTorsionFree R M] (f : End R M) {μ₁ μ₂ : R} (hμ : μ₁ ≠ μ₂) (k l : ℕ∞) : Disjoint (f.genEigenspace μ₁ k) (f.genEigenspace μ₂ l) := by @@ -728,7 +713,6 @@ theorem eigenvectors_linearIndependent [IsDomain R] [IsTorsionFree R M] (h_eigenvec : ∀ μ : μs, f.HasEigenvector μ (xs μ)) : LinearIndependent R xs := f.eigenvectors_linearIndependent' (fun μ : μs ↦ μ) Subtype.coe_injective _ h_eigenvec -set_option backward.isDefEq.respectTransparency false in /-- If `f` maps a subspace `p` into itself, then the generalized eigenspace of the restriction of `f` to `p` is the part of the generalized eigenspace of `f` that lies in `p`. -/ theorem genEigenspace_restrict (f : End R M) (p : Submodule R M) (k : ℕ∞) (μ : R) @@ -750,14 +734,12 @@ theorem genEigenspace_restrict (f : End R M) (p : Submodule R M) (k : ℕ∞) ( erw [pow_succ, pow_succ, LinearMap.ker_comp, LinearMap.ker_comp, ih, ← LinearMap.ker_comp, LinearMap.comp_assoc] -set_option backward.isDefEq.respectTransparency false in lemma _root_.Submodule.inf_genEigenspace (f : End R M) (p : Submodule R M) {k : ℕ∞} {μ : R} (hfp : ∀ x : M, x ∈ p → f x ∈ p) : p ⊓ f.genEigenspace μ k = (genEigenspace (LinearMap.restrict f hfp) μ k).map p.subtype := by rw [f.genEigenspace_restrict _ _ _ hfp, Submodule.map_comap_eq, Submodule.range_subtype] -set_option backward.isDefEq.respectTransparency false in lemma mapsTo_restrict_maxGenEigenspace_restrict_of_mapsTo {p : Submodule R M} (f g : End R M) (hf : MapsTo f p p) (hg : MapsTo g p p) {μ₁ μ₂ : R} (h : MapsTo f (g.maxGenEigenspace μ₁) (g.maxGenEigenspace μ₂)) : @@ -770,7 +752,6 @@ lemma mapsTo_restrict_maxGenEigenspace_restrict_of_mapsTo Submodule.mk_eq_zero, ← mem_maxGenEigenspace] at hx ⊢ exact h hx -set_option backward.isDefEq.respectTransparency false in /-- If `p` is an invariant submodule of an endomorphism `f`, then the `μ`-eigenspace of the restriction of `f` to `p` is a submodule of the `μ`-eigenspace of `f`. -/ theorem eigenspace_restrict_le_eigenspace (f : End R M) {p : Submodule R M} (hfp : ∀ x ∈ p, f x ∈ p) @@ -798,7 +779,6 @@ theorem generalized_eigenvec_disjoint_range_ker [FiniteDimensional K V] (f : End Submodule.map_inf_eq_map_inf_comap, top_inf_eq, h, genEigenspace_nat] apply Submodule.map_comap_le -set_option backward.isDefEq.respectTransparency false in /-- If an invariant subspace `p` of an endomorphism `f` is disjoint from the `μ`-eigenspace of `f`, then the restriction of `f` to `p` has trivial `μ`-eigenspace. -/ theorem eigenspace_restrict_eq_bot {f : End R M} {p : Submodule R M} (hfp : ∀ x ∈ p, f x ∈ p) @@ -807,7 +787,6 @@ theorem eigenspace_restrict_eq_bot {f : End R M} {p : Submodule R M} (hfp : ∀ intro x hx simpa using hμp.le_bot ⟨eigenspace_restrict_le_eigenspace f hfp μ ⟨x, hx, rfl⟩, x.prop⟩ -set_option backward.isDefEq.respectTransparency false in /-- The generalized eigenspace of an eigenvalue has positive dimension for positive exponents. -/ theorem pos_finrank_genEigenspace_of_hasEigenvalue [FiniteDimensional K V] {f : End K V} {k : ℕ} {μ : K} (hx : f.HasEigenvalue μ) (hk : 0 < k) : diff --git a/Mathlib/LinearAlgebra/Eigenspace/Pi.lean b/Mathlib/LinearAlgebra/Eigenspace/Pi.lean index 1037e5a5eceef9..72c964cab3c592 100644 --- a/Mathlib/LinearAlgebra/Eigenspace/Pi.lean +++ b/Mathlib/LinearAlgebra/Eigenspace/Pi.lean @@ -39,7 +39,6 @@ theorem mem_iInf_maxGenEigenspace_iff (χ : ι → R) (m : M) : m ∈ ⨅ i, (f i).maxGenEigenspace (χ i) ↔ ∀ j, ∃ k : ℕ, ((f j - χ j • ↑1) ^ k) m = 0 := by simp -set_option backward.isDefEq.respectTransparency false in /-- Given a family of endomorphisms `i ↦ f i`, a family of candidate eigenvalues `i ↦ μ i`, and a submodule `p` which is invariant w.r.t. every `f i`, the intersection of `p` with the simultaneous maximal generalised eigenspace (taken over all `i`), is the same as the simultaneous maximal @@ -52,7 +51,6 @@ lemma _root_.Submodule.inf_iInf_maxGenEigenspace_of_forall_mapsTo {μ : ι → R · simp [iInf_of_isEmpty] · simp_rw [inf_iInf, p.inf_genEigenspace _ (hfp _), Submodule.map_iInf _ p.injective_subtype] -set_option backward.isDefEq.respectTransparency false in /-- Given a family of endomorphisms `i ↦ f i`, a family of candidate eigenvalues `i ↦ μ i`, and a distinguished index `i` whose maximal generalised `μ i`-eigenspace is invariant w.r.t. every `f j`, taking simultaneous maximal generalised eigenspaces is unaffected by first restricting to the @@ -144,7 +142,6 @@ lemma independent_iInf_maxGenEigenspace_of_forall_mapsTo simp only [Submodule.coe_iInf] exact h l χ -set_option backward.isDefEq.respectTransparency false in /-- Given a family of endomorphisms `i ↦ f i` which are compatible in the sense that every maximal generalised eigenspace of `f i` is invariant w.r.t. `f j`, if each `f i` is triangularizable, the family is simultaneously triangularizable. -/ diff --git a/Mathlib/LinearAlgebra/Eigenspace/Semisimple.lean b/Mathlib/LinearAlgebra/Eigenspace/Semisimple.lean index 85ba8c43d786ad..c1e6cb804cee15 100644 --- a/Mathlib/LinearAlgebra/Eigenspace/Semisimple.lean +++ b/Mathlib/LinearAlgebra/Eigenspace/Semisimple.lean @@ -29,7 +29,6 @@ namespace Module.End variable {R M : Type*} [CommRing R] [AddCommGroup M] [Module R M] {f g : End R M} -set_option backward.isDefEq.respectTransparency false in lemma apply_eq_of_mem_of_comm_of_isFinitelySemisimple_of_isNil {μ : R} {k : ℕ∞} {m : M} (hm : m ∈ f.genEigenspace μ k) (hfg : Commute f g) (hss : g.IsFinitelySemisimple) (hnil : IsNilpotent (f - g)) : diff --git a/Mathlib/LinearAlgebra/Eigenspace/Triangularizable.lean b/Mathlib/LinearAlgebra/Eigenspace/Triangularizable.lean index b103db2a4a4ce6..909bb28e8236b7 100644 --- a/Mathlib/LinearAlgebra/Eigenspace/Triangularizable.lean +++ b/Mathlib/LinearAlgebra/Eigenspace/Triangularizable.lean @@ -69,7 +69,6 @@ noncomputable instance [IsAlgClosed K] [FiniteDimensional K V] [Nontrivial V] (f Inhabited f.Eigenvalues := ⟨⟨f.exists_eigenvalue.choose, f.exists_eigenvalue.choose_spec⟩⟩ -set_option backward.isDefEq.respectTransparency false in -- Lemma 8.22(c) of [axler2024] /-- In finite dimensions, over an algebraically closed field, the generalized eigenspaces of any linear endomorphism span the whole space. -/ @@ -143,7 +142,6 @@ namespace Submodule variable {p : Submodule K V} {f : Module.End K V} -set_option backward.isDefEq.respectTransparency false in theorem inf_iSup_genEigenspace [FiniteDimensional K V] (h : ∀ x ∈ p, f x ∈ p) (k : ℕ∞) : p ⊓ ⨆ μ, f.genEigenspace μ k = ⨆ μ, p ⊓ f.genEigenspace μ k := by refine le_antisymm (fun m hm ↦ ?_) @@ -232,7 +230,6 @@ theorem eq_iSup_inf_genEigenspace [FiniteDimensional K V] (k : ℕ∞) end Submodule -set_option backward.isDefEq.respectTransparency false in /-- In finite dimensions, if the generalized eigenspaces of a linear endomorphism span the whole space then the same is true of its restriction to any invariant submodule. -/ theorem Module.End.genEigenspace_restrict_eq_top diff --git a/Mathlib/LinearAlgebra/Eigenspace/Zero.lean b/Mathlib/LinearAlgebra/Eigenspace/Zero.lean index c93f11b256397e..bb2c8df2fe52a9 100644 --- a/Mathlib/LinearAlgebra/Eigenspace/Zero.lean +++ b/Mathlib/LinearAlgebra/Eigenspace/Zero.lean @@ -137,7 +137,6 @@ lemma not_hasEigenvalue_zero_tfae (φ : Module.End K M) : have aux₂ : ker φ = ⊥ ↔ ¬ ⊥ < ker φ := by rw [bot_lt_iff_ne_bot, not_not] simpa only [aux₁, aux₂] using this -set_option backward.isDefEq.respectTransparency false in open Module.Free in lemma finrank_maxGenEigenspace_zero_eq (φ : Module.End K M) : finrank K (φ.maxGenEigenspace 0) = natTrailingDegree (φ.charpoly) := by diff --git a/Mathlib/LinearAlgebra/ExteriorPower/Basic.lean b/Mathlib/LinearAlgebra/ExteriorPower/Basic.lean index 054dd8ed39df28..a15cc2f17da5c2 100644 --- a/Mathlib/LinearAlgebra/ExteriorPower/Basic.lean +++ b/Mathlib/LinearAlgebra/ExteriorPower/Basic.lean @@ -105,7 +105,6 @@ lemma ιMulti_span_fixedDegree_of_span_eq_top {s : Set M} (hs : span R s = ⊤) obtain ⟨m, -, hm⟩ := (Set.mem_image _ _ _).mp (f i).2 rw [Function.comp_apply, Function.comp_apply, ← hm, ExteriorAlgebra.ι_leftInverse] -set_option backward.isDefEq.respectTransparency false in /-- The image of `exteriorPower.ιMulti` spans `⋀[R]^n M`. -/ lemma ιMulti_span : Submodule.span R (Set.range (ιMulti R n)) = (⊤ : Submodule R (⋀[R]^n M)) := by @@ -115,7 +114,6 @@ lemma ιMulti_span : Submodule.range_subtype] exact ExteriorAlgebra.ιMulti_span_fixedDegree R n -set_option backward.isDefEq.respectTransparency false in open Set Submodule in /-- A version of `ιMulti_span_fixedDegree_of_span` that works in the exterior power. -/ lemma ιMulti_span_of_span {s : Set M} (hs : span R s = ⊤) : @@ -181,7 +179,6 @@ noncomputable def relationsSolutionEquiv {ι : Type*} [DecidableEq ι] {M : Type · simp · simpa using f.map_eq_zero_of_eq v hm hij } -set_option backward.isDefEq.respectTransparency false in /-- The universal property of the exterior power. -/ noncomputable def isPresentationCore : (relationsSolutionEquiv.symm (ιMulti R n (M := M))).IsPresentationCore where @@ -195,7 +192,6 @@ noncomputable def isPresentationCore : end presentation -set_option backward.isDefEq.respectTransparency false in /-- The standard presentation of the `R`-module `⋀[R]^n M`. -/ @[simps! G R relation var] noncomputable def presentation : Module.Presentation R (⋀[R]^n M) := @@ -203,7 +199,6 @@ noncomputable def presentation : Module.Presentation R (⋀[R]^n M) := variable {R M n} -set_option backward.isDefEq.respectTransparency false in /-- Two linear maps on `⋀[R]^n M` that agree on the image of `exteriorPower.ιMulti` are equal. -/ @[ext] @@ -211,7 +206,6 @@ lemma linearMap_ext {f : ⋀[R]^n M →ₗ[R] N} {g : ⋀[R]^n M →ₗ[R] N} (heq : f.compAlternatingMap (ιMulti R n) = g.compAlternatingMap (ιMulti R n)) : f = g := (presentation R n M).postcomp_injective (by ext f; apply DFunLike.congr_fun heq) -set_option backward.isDefEq.respectTransparency false in /-- The linear equivalence between `n`-fold alternating maps from `M` to `N` and linear maps from `⋀[R]^n M` to `N`: this is the universal property of the `n`th exterior power of `M`. -/ noncomputable def alternatingMapLinearEquiv : (M [⋀^Fin n]→ₗ[R] N) ≃ₗ[R] ⋀[R]^n M →ₗ[R] N := @@ -240,7 +234,6 @@ lemma alternatingMapLinearEquiv_symm_apply (F : ⋀[R]^n M →ₗ[R] N) (m : Fin obtain ⟨f, rfl⟩ := alternatingMapLinearEquiv.surjective F simp only [LinearEquiv.symm_apply_apply, alternatingMapLinearEquiv_comp_ιMulti] -set_option backward.isDefEq.respectTransparency false in @[simp] lemma alternatingMapLinearEquiv_ιMulti : alternatingMapLinearEquiv (ιMulti R n (M := M)) = LinearMap.id := by @@ -261,24 +254,20 @@ lemma alternatingMapLinearEquiv_comp (g : N →ₗ[R] N') (f : M [⋀^Fin n]→ /-! Functoriality of the exterior powers. -/ -set_option backward.isDefEq.respectTransparency false in variable (n) in /-- The linear map between `n`th exterior powers induced by a linear map between the modules. -/ noncomputable def map (f : M →ₗ[R] N) : ⋀[R]^n M →ₗ[R] ⋀[R]^n N := alternatingMapLinearEquiv ((ιMulti R n).compLinearMap f) -set_option backward.isDefEq.respectTransparency false in @[simp] lemma alternatingMapLinearEquiv_symm_map (f : M →ₗ[R] N) : alternatingMapLinearEquiv.symm (map n f) = (ιMulti R n).compLinearMap f := by simp only [map, LinearEquiv.symm_apply_apply] -set_option backward.isDefEq.respectTransparency false in @[simp] theorem map_comp_ιMulti (f : M →ₗ[R] N) : (map n f).compAlternatingMap (ιMulti R n) = (ιMulti R n).compLinearMap f := by simp only [map, alternatingMapLinearEquiv_comp_ιMulti] -set_option backward.isDefEq.respectTransparency false in @[simp] theorem map_apply_ιMulti (f : M →ₗ[R] N) (m : Fin n → M) : map n f (ιMulti R n m) = ιMulti R n (f ∘ m) := by @@ -292,7 +281,6 @@ lemma map_comp_ιMulti_family {I : Type*} [LinearOrder I] (v : I → M) (f : M simp only [ιMulti_family, Function.comp_apply, map_apply_ιMulti] rfl -set_option backward.isDefEq.respectTransparency false in @[simp] lemma map_apply_ιMulti_family {I : Type*} [LinearOrder I] (v : I → M) (f : M →ₗ[R] N) (s : powersetCard I n) : @@ -300,13 +288,11 @@ lemma map_apply_ιMulti_family {I : Type*} [LinearOrder I] (v : I → M) (f : M simp only [ιMulti_family, map, alternatingMapLinearEquiv_apply_ιMulti] rfl -set_option backward.isDefEq.respectTransparency false in @[simp] theorem map_id : map n (LinearMap.id (R := R) (M := M)) = LinearMap.id := by aesop -set_option backward.isDefEq.respectTransparency false in @[simp] theorem map_comp (f : M →ₗ[R] N) (g : N →ₗ[R] N') : map n (g ∘ₗ f) = map n g ∘ₗ map n f := by @@ -390,7 +376,6 @@ lemma ιMulti_family_span_fixedDegree_of_span {I : Type*} [LinearOrder I] {v : I obtain ⟨α, rfl⟩ := Set.range_subset_range_iff_exists_comp.mp f_range exact ιMulti_family_span_fixedDegree_aux R v α -set_option backward.isDefEq.respectTransparency false in /-- If a family of vectors spans `M`, then the family of its `n`-fold exterior products spans `⋀[R]^n M`. This is a variant of `ιMulti_family_span_fixedDegree_of_span` where we work in the exterior power and not the exterior algebra. -/ @@ -401,7 +386,6 @@ lemma ιMulti_family_span_of_span {I : Type*} [LinearOrder I] rw [LinearMap.map_span, ← Set.image_univ, Set.image_image] simpa using ιMulti_family_span_fixedDegree_of_span R hv -set_option backward.isDefEq.respectTransparency false in open Set Submodule in /-- If `v` is a family of vectors of `M` indexed by a linearly ordered type, then the span of the range of `exteriorPower.ιMulti_family R n v`, i.e., of the family of `n`-fold exterior products @@ -423,7 +407,6 @@ end ιMulti_family /-! Linear equivalences in degrees 0 and 1. -/ -set_option backward.isDefEq.respectTransparency false in variable (R M) in /-- The linear equivalence ` ⋀[R]^0 M ≃ₗ[R] R`. -/ @[simps! -isSimp symm_apply] @@ -443,7 +426,6 @@ lemma zeroEquiv_ιMulti (f : Fin 0 → M) : lemma zeroEquiv_naturality (f : M →ₗ[R] N) : (zeroEquiv R N).comp (map 0 f) = zeroEquiv R M := by aesop -set_option backward.isDefEq.respectTransparency false in variable (R M) in /-- The linear equivalence `M ≃ₗ[R] ⋀[R]^1 M`. -/ @[simps! -isSimp symm_apply] diff --git a/Mathlib/LinearAlgebra/FiniteDimensional/Basic.lean b/Mathlib/LinearAlgebra/FiniteDimensional/Basic.lean index 4c243c6e8ca43e..0169aea3796ead 100644 --- a/Mathlib/LinearAlgebra/FiniteDimensional/Basic.lean +++ b/Mathlib/LinearAlgebra/FiniteDimensional/Basic.lean @@ -57,7 +57,6 @@ theorem _root_.LinearIndependent.lt_aleph0_of_finiteDimensional {ι : Type w} [F {v : ι → V} (h : LinearIndependent K v) : #ι < ℵ₀ := h.lt_aleph0_of_finite -set_option backward.isDefEq.respectTransparency false in /-- If a submodule has maximal dimension in a finite-dimensional space, then it is equal to the whole space. -/ theorem _root_.Submodule.eq_top_of_finrank_eq [FiniteDimensional K V] {S : Submodule K V} @@ -154,7 +153,6 @@ theorem FiniteDimensional.of_rank_eq_one (h : Module.rank K V = 1) : FiniteDimen variable (K V) -set_option backward.isDefEq.respectTransparency false in instance finiteDimensional_bot : FiniteDimensional K (⊥ : Submodule K V) := .of_rank_eq_zero <| by simp @@ -168,35 +166,30 @@ section DivisionRing variable [DivisionRing K] [AddCommGroup V] [Module K V] -set_option backward.isDefEq.respectTransparency false in /-- A submodule contained in a finite-dimensional submodule is finite-dimensional. -/ theorem finiteDimensional_of_le {S₁ S₂ : Submodule K V} [FiniteDimensional K S₂] (h : S₁ ≤ S₂) : FiniteDimensional K S₁ := (isNoetherian_of_le h).finite -set_option backward.isDefEq.respectTransparency false in /-- The inf of two submodules, the first finite-dimensional, is finite-dimensional. -/ instance finiteDimensional_inf_left (S₁ S₂ : Submodule K V) [FiniteDimensional K S₁] : FiniteDimensional K (S₁ ⊓ S₂ : Submodule K V) := finiteDimensional_of_le inf_le_left -set_option backward.isDefEq.respectTransparency false in /-- The inf of two submodules, the second finite-dimensional, is finite-dimensional. -/ instance finiteDimensional_inf_right (S₁ S₂ : Submodule K V) [FiniteDimensional K S₂] : FiniteDimensional K (S₁ ⊓ S₂ : Submodule K V) := finiteDimensional_of_le inf_le_right -set_option backward.isDefEq.respectTransparency false in /-- The sup of two finite-dimensional submodules is finite-dimensional. -/ instance finiteDimensional_sup (S₁ S₂ : Submodule K V) [h₁ : FiniteDimensional K S₁] [h₂ : FiniteDimensional K S₂] : FiniteDimensional K (S₁ ⊔ S₂ : Submodule K V) := finite_sup _ _ -set_option backward.isDefEq.respectTransparency false in /-- The submodule generated by a finite supremum of finite-dimensional submodules is finite-dimensional. @@ -206,7 +199,6 @@ instance finiteDimensional_finset_sup {ι : Type*} (s : Finset ι) (S : ι → S [∀ i, FiniteDimensional K (S i)] : FiniteDimensional K (s.sup S : Submodule K V) := Submodule.finite_finset_sup _ _ -set_option backward.isDefEq.respectTransparency false in /-- The submodule generated by a supremum of finite-dimensional submodules, indexed by a finite sort is finite-dimensional. -/ instance finiteDimensional_iSup {ι : Sort*} [Finite ι] (S : ι → Submodule K V) @@ -230,7 +222,6 @@ end namespace Submodule variable [DivisionRing K] [AddCommGroup V] [Module K V] -set_option backward.isDefEq.respectTransparency false in /-- If a submodule is contained in a finite-dimensional submodule with the same or smaller dimension, they are equal. -/ theorem eq_of_le_of_finrank_le {S₁ S₂ : Submodule K V} [FiniteDimensional K S₂] (hle : S₁ ≤ S₂) @@ -239,7 +230,6 @@ theorem eq_of_le_of_finrank_le {S₁ S₂ : Submodule K V} [FiniteDimensional K exact le_antisymm hle (Submodule.comap_subtype_eq_top.1 (eq_top_of_finrank_eq (le_antisymm (comap (Submodule.subtype S₂) S₁).finrank_le hd))) -set_option backward.isDefEq.respectTransparency false in /-- If a submodule is contained in a finite-dimensional submodule with the same dimension, they are equal. -/ theorem eq_of_le_of_finrank_eq {S₁ S₂ : Submodule K V} [FiniteDimensional K S₂] (hle : S₁ ≤ S₂) @@ -289,7 +279,6 @@ theorem finiteDimensional_of_surjective [FiniteDimensional K V] (f : V →ₗ[K] (hf : LinearMap.range f = ⊤) : FiniteDimensional K V₂ := Module.Finite.of_surjective f <| range_eq_top.1 hf -set_option backward.isDefEq.respectTransparency false in /-- The range of a linear map defined on a finite-dimensional space is also finite-dimensional. -/ instance finiteDimensional_range [FiniteDimensional K V] (f : V →ₗ[K] V₂) : FiniteDimensional K (LinearMap.range f) := @@ -304,7 +293,6 @@ theorem injective_iff_surjective [FiniteDimensional K V] {f : V →ₗ[K] V} : (leftInverse_of_surjective_of_rightInverse (surjective_of_injective this.injective) this).injective⟩ -set_option backward.isDefEq.respectTransparency false in lemma injOn_iff_surjOn {p : Submodule K V} [FiniteDimensional K p] {f : V →ₗ[K] V} (h : ∀ x ∈ p, f x ∈ p) : Set.InjOn f p ↔ Set.SurjOn f p p := by @@ -361,7 +349,6 @@ they are inverse to each other on the other side. -/ theorem mul_eq_one_comm [FiniteDimensional K V] {f g : V →ₗ[K] V} : f * g = 1 ↔ g * f = 1 := mul_eq_one_comm -set_option backward.isDefEq.respectTransparency false in theorem comap_eq_sup_ker_of_disjoint {p : Submodule K V} [FiniteDimensional K p] {f : V →ₗ[K] V} (h : ∀ x ∈ p, f x ∈ p) (h' : Disjoint p (ker f)) : p.comap f = p ⊔ ker f := by @@ -528,7 +515,6 @@ section Span open Submodule -set_option backward.isDefEq.respectTransparency false in theorem finrank_span_singleton {v : V} (hv : v ≠ 0) : finrank K (K ∙ v) = 1 := by apply le_antisymm · exact finrank_span_le_card ({v} : Set V) diff --git a/Mathlib/LinearAlgebra/FiniteDimensional/Defs.lean b/Mathlib/LinearAlgebra/FiniteDimensional/Defs.lean index 2534fef930f788..55f86eec9f9c02 100644 --- a/Mathlib/LinearAlgebra/FiniteDimensional/Defs.lean +++ b/Mathlib/LinearAlgebra/FiniteDimensional/Defs.lean @@ -127,7 +127,6 @@ theorem of_finite_basis {ι : Type w} {s : Set ι} (h : Basis s K V) (hs : Set.F haveI := hs.fintype h.finiteDimensional_of_finite -set_option backward.isDefEq.respectTransparency false in /-- A subspace of a finite-dimensional space is also finite-dimensional. This is a shortcut instance to simplify inference in the presence of `[FiniteDimensional K V]`. @@ -199,22 +198,18 @@ variable (K) instance finiteDimensional_self : FiniteDimensional K K := inferInstance -set_option backward.isDefEq.respectTransparency false in /-- The submodule generated by a finite set is finite-dimensional. -/ theorem span_of_finite {A : Set V} (hA : Set.Finite A) : FiniteDimensional K (Submodule.span K A) := Module.Finite.span_of_finite K hA -set_option backward.isDefEq.respectTransparency false in /-- The submodule generated by a single element is finite-dimensional. -/ instance span_singleton (x : V) : FiniteDimensional K (K ∙ x) := Module.Finite.span_singleton K x -set_option backward.isDefEq.respectTransparency false in /-- The submodule generated by a finset is finite-dimensional. -/ instance span_finset (s : Finset V) : FiniteDimensional K (span K (s : Set V)) := Module.Finite.span_finset K s -set_option backward.isDefEq.respectTransparency false in /-- Pushforwards of finite-dimensional submodules are finite-dimensional. -/ instance (f : V →ₗ[K] V₂) (p : Submodule K V) [FiniteDimensional K p] : FiniteDimensional K (p.map f) := @@ -240,7 +235,6 @@ section DivisionRing variable [DivisionRing K] [AddCommGroup V] [Module K V] -set_option backward.isDefEq.respectTransparency false in /-- A submodule is finitely generated if and only if it is finite-dimensional -/ theorem fg_iff_finiteDimensional (s : Submodule K V) : s.FG ↔ FiniteDimensional K s := Module.Finite.iff_fg.symm diff --git a/Mathlib/LinearAlgebra/FiniteDimensional/Lemmas.lean b/Mathlib/LinearAlgebra/FiniteDimensional/Lemmas.lean index bf6df711dec700..218606ff59b7e7 100644 --- a/Mathlib/LinearAlgebra/FiniteDimensional/Lemmas.lean +++ b/Mathlib/LinearAlgebra/FiniteDimensional/Lemmas.lean @@ -49,7 +49,6 @@ theorem finrank_lt [FiniteDimensional K V] {s : Submodule K V} (h : s ≠ ⊤) : rw [← Quotient.nontrivial_iff] at h exact Nat.lt_add_of_pos_right finrank_pos -set_option backward.isDefEq.respectTransparency false in /-- The sum of the dimensions of s + t and s ∩ t is the sum of the dimensions of s and t -/ theorem finrank_sup_add_finrank_inf_eq (s t : Submodule K V) [FiniteDimensional K s] [FiniteDimensional K t] : @@ -59,7 +58,6 @@ theorem finrank_sup_add_finrank_inf_eq (s t : Submodule K V) [FiniteDimensional repeat rw [← finrank_eq_rank] at key norm_cast at key -set_option backward.isDefEq.respectTransparency false in theorem finrank_add_le_finrank_add_finrank (s t : Submodule K V) [FiniteDimensional K s] [FiniteDimensional K t] : finrank K (s ⊔ t : Submodule K V) ≤ finrank K s + finrank K t := by rw [← finrank_sup_add_finrank_inf_eq] @@ -111,7 +109,6 @@ noncomputable def LinearEquiv.quotEquivOfEquiv {p : Subspace K V} {q : Subspace LinearEquiv.finrank_eq f₁, Submodule.finrank_quotient_add_finrank, LinearEquiv.finrank_eq f₂]) -set_option backward.isDefEq.respectTransparency false in -- TODO: generalize to the case where one of `p` and `q` is finite-dimensional. /-- Given the subspaces `p q`, if `p.quotient ≃ₗ[K] q`, then `q.quotient ≃ₗ[K] p` -/ noncomputable def LinearEquiv.quotEquivOfQuotEquiv {p q : Subspace K V} (f : (V ⧸ p) ≃ₗ[K] q) : @@ -197,7 +194,6 @@ section DivisionRing variable [DivisionRing K] [AddCommGroup V] [Module K V] {V₂ : Type v'} [AddCommGroup V₂] [Module K V₂] -set_option backward.isDefEq.respectTransparency false in theorem finrank_lt_finrank_of_lt {s t : Submodule K V} [FiniteDimensional K t] (hst : s < t) : finrank K s < finrank K t := (comapSubtypeEquivOfLe hst.le).finrank_eq.symm.trans_lt <| diff --git a/Mathlib/LinearAlgebra/FreeModule/Finite/CardQuotient.lean b/Mathlib/LinearAlgebra/FreeModule/Finite/CardQuotient.lean index b4cc35558ae83a..49c112d32c4a6e 100644 --- a/Mathlib/LinearAlgebra/FreeModule/Finite/CardQuotient.lean +++ b/Mathlib/LinearAlgebra/FreeModule/Finite/CardQuotient.lean @@ -28,7 +28,6 @@ section Submodule variable {M : Type*} [AddCommGroup M] [Module.Free ℤ M] [Module.Finite ℤ M] -set_option backward.isDefEq.respectTransparency false in /-- Let `e : M ≃ N` be an additive isomorphism (therefore a `ℤ`-linear equiv). Then an alternative way to compute the cardinality of the quotient `M ⧸ N` is given by taking the determinant of `e`. @@ -80,7 +79,6 @@ theorem Submodule.natAbs_det_equiv (N : Submodule ℤ M) {E : Type*} [EquivLike -- which maps `(M ⧸ N)` to `Π i, ZMod (a i).nat_abs`. simp_rw [Nat.card_congr (quotientEquivPiZMod N b h).toEquiv, Nat.card_pi, Nat.card_zmod, a] -set_option backward.isDefEq.respectTransparency false in /-- Let `b` be a basis for `M` over `ℤ` and `bN` a basis for `N` over `ℤ` of the same dimension. Then an alternative way to compute the cardinality of `M ⧸ N` is given by taking the determinant of `bN` over `b`. -/ @@ -112,7 +110,6 @@ theorem AddSubgroup.relIndex_eq_natAbs_det {E : Type*} [AddCommGroup E] rw [relIndex, index_eq_natAbs_det b₂ _ (b₁.map (addSubgroupOfEquivOfLe H).toIntLinearEquiv.symm)] rfl -set_option backward.isDefEq.respectTransparency false in theorem AddSubgroup.relIndex_eq_abs_det {E : Type*} [AddCommGroup E] [Module ℚ E] (L₁ L₂ : AddSubgroup E) (H : L₁ ≤ L₂) {ι : Type*} [DecidableEq ι] [Fintype ι] (b₁ b₂ : Basis ι ℚ E) (h₁ : L₁ = .closure (Set.range b₁)) (h₂ : L₂ = .closure (Set.range b₂)) : diff --git a/Mathlib/LinearAlgebra/FreeModule/PID.lean b/Mathlib/LinearAlgebra/FreeModule/PID.lean index 002d687b9df65f..d5084ac95fa998 100644 --- a/Mathlib/LinearAlgebra/FreeModule/PID.lean +++ b/Mathlib/LinearAlgebra/FreeModule/PID.lean @@ -138,7 +138,6 @@ theorem generator_maximal_submoduleImage_dvd {N O : Submodule R M} (hNO : N ≤ variable [IsDomain R] -set_option backward.isDefEq.respectTransparency false in /-- The induction hypothesis of `Submodule.basisOfPid` and `Submodule.smithNormalForm`. Basically, it says: let `N ≤ M` be a pair of submodules, then we can find a pair of @@ -308,7 +307,6 @@ theorem Submodule.basisOfPid_bot {ι : Type*} [Finite ι] (b : Basis ι R M) : obtain rfl : n = 0 := by simpa using Fintype.card_eq.mpr ⟨e⟩ exact Sigma.eq rfl (Basis.eq_of_apply_eq <| finZeroElim) -set_option backward.isDefEq.respectTransparency false in /-- A submodule inside a free `R`-submodule of finite rank is also a free `R`-module of finite rank, if `R` is a principal ideal domain. @@ -390,7 +388,6 @@ instance Module.free_of_finite_type_torsion_free' [Module.Finite R M] [IsTorsion obtain ⟨n, b⟩ : Σ n, Basis (Fin n) R M := Module.basisOfFiniteTypeTorsionFree' exact Module.Free.of_basis b -set_option backward.isDefEq.respectTransparency false in instance {S : Type*} [CommRing S] [Algebra R S] {I : Ideal S} [hI₁ : Module.Finite R I] [hI₂ : IsTorsionFree R I] : Free R I := by have : Module.Finite R (restrictScalars R I) := hI₁ @@ -505,7 +502,6 @@ theorem Submodule.exists_smith_normal_form_of_le [Finite ι] (b : Basis ι R M) obtain ⟨as, has⟩ := h'' as' has' exact ⟨_, _, hmn, bM, bN, as, has⟩ -set_option backward.isDefEq.respectTransparency false in /-- If `M` is finite free over a PID `R`, then any submodule `N` is free and we can find a basis for `M` and `N` such that the inclusion map is a diagonal matrix in Smith normal form. @@ -525,7 +521,6 @@ noncomputable def Submodule.smithNormalFormOfLE [Finite ι] (b : Basis ι R M) ( simp only [snf, Basis.map_apply, Submodule.comapSubtypeEquivOfLe_symm_apply, Submodule.coe_smul_of_tower, Fin.castLEEmb_apply] -set_option backward.isDefEq.respectTransparency false in /-- If `M` is finite free over a PID `R`, then any submodule `N` is free and we can find a basis for `M` and `N` such that the inclusion map is a diagonal matrix in Smith normal form. diff --git a/Mathlib/LinearAlgebra/Goursat.lean b/Mathlib/LinearAlgebra/Goursat.lean index 11f64be2dec4c9..4090de1ada933a 100644 --- a/Mathlib/LinearAlgebra/Goursat.lean +++ b/Mathlib/LinearAlgebra/Goursat.lean @@ -51,12 +51,12 @@ def goursatSnd : Submodule R N := lemma goursatFst_toAddSubgroup : (goursatFst L).toAddSubgroup = L.toAddSubgroup.goursatFst := by ext x - simp [mem_toAddSubgroup, goursatFst, AddSubgroup.mem_goursatFst] + simp [goursatFst, AddSubgroup.mem_goursatFst] lemma goursatSnd_toAddSubgroup : (goursatSnd L).toAddSubgroup = L.toAddSubgroup.goursatSnd := by ext x - simp [mem_toAddSubgroup, goursatSnd, AddSubgroup.mem_goursatSnd] + simp [goursatSnd, AddSubgroup.mem_goursatSnd] variable (L) in lemma goursatFst_prod_goursatSnd_le : L.goursatFst.prod L.goursatSnd ≤ L := by @@ -95,7 +95,6 @@ lemma goursat_surjective : ∃ e : (M ⧸ L.goursatFst) ≃ₗ[R] N ⧸ L.goursa rw [mem_toAddSubgroup, mem_graph_iff, Eq.comm] rfl -set_option backward.isDefEq.respectTransparency false in /-- **Goursat's lemma** for an arbitrary submodule of a product. If `L` is a submodule of `M × N`, then there exist submodules `M'' ≤ M' ≤ M` and `N'' ≤ N' ≤ N` such diff --git a/Mathlib/LinearAlgebra/Isomorphisms.lean b/Mathlib/LinearAlgebra/Isomorphisms.lean index 9a81a5f9d4993c..578dbff5593052 100644 --- a/Mathlib/LinearAlgebra/Isomorphisms.lean +++ b/Mathlib/LinearAlgebra/Isomorphisms.lean @@ -66,19 +66,16 @@ theorem quotKerEquivOfSurjective_symm_apply (hf : Function.Surjective f) (x : M) (f.quotKerEquivOfSurjective hf).symm (f x) = Submodule.Quotient.mk x := by simp [LinearEquiv.symm_apply_eq] -set_option backward.isDefEq.respectTransparency false in /-- Linear map from `p` to `p+p'/p'` where `p p'` are submodules of `R` -/ abbrev subToSupQuotient (p p' : Submodule R M) : { x // x ∈ p } →ₗ[R] { x // x ∈ p ⊔ p' } ⧸ comap (Submodule.subtype (p ⊔ p')) p' := (comap (p ⊔ p').subtype p').mkQ.comp (Submodule.inclusion le_sup_left) -set_option backward.isDefEq.respectTransparency false in theorem comap_leq_ker_subToSupQuotient (p p' : Submodule R M) : comap (Submodule.subtype p) (p ⊓ p') ≤ ker (subToSupQuotient p p') := by rw [LinearMap.ker_comp, Submodule.inclusion, comap_codRestrict, ker_mkQ, map_comap_subtype] exact comap_mono (inf_le_inf_right _ le_sup_left) -set_option backward.isDefEq.respectTransparency false in /-- Canonical linear map from the quotient `p/(p ∩ p')` to `(p+p')/p'`, mapping `x + (p ∩ p')` to `x + p'`, where `p` and `p'` are submodules of an ambient module. @@ -107,7 +104,6 @@ theorem quotientInfEquivSupQuotient_surjective (p p' : Submodule R M) : use ⟨y, hy⟩; apply (Submodule.Quotient.eq _).2 simp only [mem_comap, map_sub, coe_subtype, coe_inclusion, sub_add_cancel_left, neg_mem_iff, hz] -set_option backward.isDefEq.respectTransparency false in /-- Second Isomorphism Law : the canonical map from `p/(p ∩ p')` to `(p+p')/p'` as a linear isomorphism. @@ -126,14 +122,12 @@ theorem coe_quotientInfToSupQuotient (p p' : Submodule R M) : ⇑(quotientInfToSupQuotient p p') = quotientInfEquivSupQuotient p p' := rfl -set_option backward.isDefEq.respectTransparency false in theorem quotientInfEquivSupQuotient_apply_mk (p p' : Submodule R M) (x : p) : let map := inclusion (le_sup_left : p ≤ p ⊔ p') quotientInfEquivSupQuotient p p' (Submodule.Quotient.mk x) = @Submodule.Quotient.mk R (p ⊔ p' : Submodule R M) _ _ _ (comap (p ⊔ p').subtype p') (map x) := rfl -set_option backward.isDefEq.respectTransparency false in theorem quotientInfEquivSupQuotient_symm_apply_left (p p' : Submodule R M) (x : ↥(p ⊔ p')) (hx : (x : M) ∈ p) : (quotientInfEquivSupQuotient p p').symm (Submodule.Quotient.mk x) = @@ -142,12 +136,10 @@ theorem quotientInfEquivSupQuotient_symm_apply_left (p p' : Submodule R M) (x : rw [quotientInfEquivSupQuotient_apply_mk, inclusion_apply] -set_option backward.isDefEq.respectTransparency false in theorem quotientInfEquivSupQuotient_symm_apply_eq_zero_iff {p p' : Submodule R M} {x : ↥(p ⊔ p')} : (quotientInfEquivSupQuotient p p').symm (Submodule.Quotient.mk x) = 0 ↔ (x : M) ∈ p' := (LinearEquiv.symm_apply_eq _).trans <| by simp -set_option backward.isDefEq.respectTransparency false in theorem quotientInfEquivSupQuotient_symm_apply_right (p p' : Submodule R M) {x : ↥(p ⊔ p')} (hx : (x : M) ∈ p') : (quotientInfEquivSupQuotient p p').symm (Submodule.Quotient.mk x) = 0 := diff --git a/Mathlib/LinearAlgebra/LinearDisjoint.lean b/Mathlib/LinearAlgebra/LinearDisjoint.lean index fb86215511ca01..a478007cac3be6 100644 --- a/Mathlib/LinearAlgebra/LinearDisjoint.lean +++ b/Mathlib/LinearAlgebra/LinearDisjoint.lean @@ -486,7 +486,6 @@ section variable [Nontrivial R] -set_option backward.isDefEq.respectTransparency false in /-- If `M` and `N` are linearly disjoint, if `M` is flat, then any two commutative elements of `↥(M ⊓ N)` are not `R`-linearly independent (namely, their span is not `R ^ 2`). -/ theorem not_linearIndependent_pair_of_commute_of_flat_left [Module.Flat R M] @@ -503,7 +502,6 @@ theorem not_linearIndependent_pair_of_commute_of_flat_left [Module.Flat R M] repeat rw [AddSubmonoid.mk_eq_zero, ZeroMemClass.coe_eq_zero] at hm exact h.ne_zero 0 hm.2 -set_option backward.isDefEq.respectTransparency false in /-- If `M` and `N` are linearly disjoint, if `N` is flat, then any two commutative elements of `↥(M ⊓ N)` are not `R`-linearly independent (namely, their span is not `R ^ 2`). -/ theorem not_linearIndependent_pair_of_commute_of_flat_right [Module.Flat R N] diff --git a/Mathlib/LinearAlgebra/LinearIndependent/Defs.lean b/Mathlib/LinearAlgebra/LinearIndependent/Defs.lean index 648a2d62ac8a03..501b3f16950a31 100644 --- a/Mathlib/LinearAlgebra/LinearIndependent/Defs.lean +++ b/Mathlib/LinearAlgebra/LinearIndependent/Defs.lean @@ -805,7 +805,6 @@ theorem linearIndepOn_iff_disjoint : LinearIndepOn R v s ↔ Disjoint (Finsupp.supported R R s) (LinearMap.ker <| Finsupp.linearCombination R v) := by rw [linearIndepOn_iff, LinearMap.disjoint_ker] -set_option backward.isDefEq.respectTransparency false in theorem linearIndepOn_iff_linearCombinationOn : LinearIndepOn R v s ↔ (LinearMap.ker <| Finsupp.linearCombinationOn ι M R v s) = ⊥ := linearIndepOn_iff_linearCombinationOnₛ.trans <| diff --git a/Mathlib/LinearAlgebra/LinearPMap.lean b/Mathlib/LinearAlgebra/LinearPMap.lean index a80ac18dc3c884..2ab477b8410a9c 100644 --- a/Mathlib/LinearAlgebra/LinearPMap.lean +++ b/Mathlib/LinearAlgebra/LinearPMap.lean @@ -656,13 +656,11 @@ end LinearMap namespace LinearPMap -set_option backward.isDefEq.respectTransparency false in /-- Restrict codomain of a `LinearPMap` -/ def codRestrict (f : E →ₗ.[R] F) (p : Submodule R F) (H : ∀ x, f x ∈ p) : E →ₗ.[R] p where domain := f.domain toFun := f.toFun.codRestrict p H -set_option backward.isDefEq.respectTransparency false in /-- Compose two `LinearPMap`s -/ def comp (g : F →ₗ.[R] G) (f : E →ₗ.[R] F) (H : ∀ x : f.domain, f x ∈ g.domain) : E →ₗ.[R] G := g.toFun.compPMap <| f.codRestrict _ H diff --git a/Mathlib/LinearAlgebra/Matrix/Ideal.lean b/Mathlib/LinearAlgebra/Matrix/Ideal.lean index 65878094af3eab..d4f761ab71964e 100644 --- a/Mathlib/LinearAlgebra/Matrix/Ideal.lean +++ b/Mathlib/LinearAlgebra/Matrix/Ideal.lean @@ -160,12 +160,10 @@ theorem matrix_strictMono_of_nonempty [Nonempty n] : StrictMono (matrix (R := R) n) := matrix_monotone n |>.strictMono_of_injective <| matrix_injective _ -set_option backward.isDefEq.respectTransparency false in @[simp] theorem matrix_bot : (⊥ : RingCon R).matrix n = ⊥ := eq_bot_iff.2 fun _ _ h ↦ Matrix.ext h -set_option backward.isDefEq.respectTransparency false in @[simp] theorem matrix_top : (⊤ : RingCon R).matrix n = ⊤ := eq_top_iff.2 fun _ _ _ _ _ ↦ by simp diff --git a/Mathlib/LinearAlgebra/Multilinear/DFinsupp.lean b/Mathlib/LinearAlgebra/Multilinear/DFinsupp.lean index 96be933487ffcc..d85ad2e86683bc 100644 --- a/Mathlib/LinearAlgebra/Multilinear/DFinsupp.lean +++ b/Mathlib/LinearAlgebra/Multilinear/DFinsupp.lean @@ -78,7 +78,6 @@ variable [DecidableEq ι] [Fintype ι] [Semiring R] variable [∀ i k, AddCommMonoid (M i k)] [∀ p, AddCommMonoid (N p)] variable [∀ i k, Module R (M i k)] [∀ p, Module R (N p)] -set_option backward.isDefEq.respectTransparency false in /-- Given a family of indices `κ` and a multilinear map `f p` for each way `p` to select one index from each family, `dfinsuppFamily f` maps a family of finitely-supported functions (one for each domain diff --git a/Mathlib/LinearAlgebra/PerfectPairing/Restrict.lean b/Mathlib/LinearAlgebra/PerfectPairing/Restrict.lean index c41a88d8c8fbf8..45a4ac8ce887f9 100644 --- a/Mathlib/LinearAlgebra/PerfectPairing/Restrict.lean +++ b/Mathlib/LinearAlgebra/PerfectPairing/Restrict.lean @@ -216,7 +216,6 @@ variable {M' N' : Type*} [AddCommGroup M'] [AddCommGroup N'] [Module K M'] [Module K N'] [IsScalarTower K L N] (i : M' →ₗ[K] M) (j : N' →ₗ[K] N) (hi : Injective i) (hj : Injective j) -set_option backward.isDefEq.respectTransparency false in include hi hj in /-- An auxiliary definition used only to simplify the construction of the more general definition `PerfectPairing.restrictScalarsField`. -/ diff --git a/Mathlib/LinearAlgebra/PiTensorProduct.lean b/Mathlib/LinearAlgebra/PiTensorProduct.lean index 956ad7230b0056..4a70416faba56b 100644 --- a/Mathlib/LinearAlgebra/PiTensorProduct.lean +++ b/Mathlib/LinearAlgebra/PiTensorProduct.lean @@ -311,7 +311,6 @@ lemma _root_.FreeAddMonoid.toPiTensorProduct (p : FreeAddMonoid (R × Π i, s i) def lifts (x : ⨂[R] i, s i) : Set (FreeAddMonoid (R × Π i, s i)) := {p | AddCon.toQuotient (c := addConGen (PiTensorProduct.Eqv R s)) p = x} -set_option backward.isDefEq.respectTransparency false in /-- An element `p` of `FreeAddMonoid (R × Π i, s i)` lifts an element `x` of `⨂[R] i, s i` if and only if `x` is equal to the sum of `a • ⨂ₜ[R] i, m i` over all the entries `(a, m)` of `p`. @@ -331,7 +330,6 @@ lemma nonempty_lifts (x : ⨂[R] i, s i) : Set.Nonempty (lifts x) := by lemma lifts_zero : 0 ∈ lifts (0 : ⨂[R] i, s i) := by rw [mem_lifts_iff, FreeAddMonoid.toList_zero, List.map_nil, List.sum_nil] -set_option backward.isDefEq.respectTransparency false in /-- If elements `p,q` of `FreeAddMonoid (R × Π i, s i)` lift elements `x,y` of `⨂[R] i, s i` respectively, then `p + q` lifts `x + y`. -/ @@ -713,7 +711,6 @@ theorem lift_reindex_symm lift φ (reindex R s e |>.symm x) = lift (domDomCongrLinearEquiv' R R s _ e φ) x := LinearMap.congr_fun (lift_comp_reindex_symm e φ) x -set_option backward.isDefEq.respectTransparency false in @[simp] theorem reindex_trans (e : ι ≃ ι₂) (e' : ι₂ ≃ ι₃) : (reindex R s e).trans (reindex R _ e') = reindex R s (e.trans e') := by @@ -735,7 +732,6 @@ theorem reindex_symm (e : ι ≃ ι₂) : ext x simp [reindex] -set_option backward.isDefEq.respectTransparency false in @[simp] theorem reindex_refl : reindex R s (Equiv.refl ι) = LinearEquiv.refl R _ := by ext diff --git a/Mathlib/LinearAlgebra/Prod.lean b/Mathlib/LinearAlgebra/Prod.lean index 64904085a1f3d3..6416808409864e 100644 --- a/Mathlib/LinearAlgebra/Prod.lean +++ b/Mathlib/LinearAlgebra/Prod.lean @@ -477,7 +477,6 @@ theorem ker_coprod_of_disjoint_range {M₂ : Type*} [AddCommGroup M₂] [Module rw [this] at h simpa [this] using h -set_option backward.isDefEq.respectTransparency false in /-- Given a linear map `f : E →ₗ[R] F` and a complement `C` of its kernel, we get a linear equivalence between `C` and `range f`. -/ @[simps!] diff --git a/Mathlib/LinearAlgebra/Projection.lean b/Mathlib/LinearAlgebra/Projection.lean index 4c3944a7819f92..ec916c60a6a827 100644 --- a/Mathlib/LinearAlgebra/Projection.lean +++ b/Mathlib/LinearAlgebra/Projection.lean @@ -52,7 +52,6 @@ theorem ker_id_sub_eq_of_proj {f : E →ₗ[R] p} (hf : ∀ x : p, f x = x) : theorem range_eq_of_proj {f : E →ₗ[R] p} (hf : ∀ x : p, f x = x) : range f = ⊤ := range_eq_top.2 fun x => ⟨x, hf x⟩ -set_option backward.isDefEq.respectTransparency false in theorem isCompl_of_proj {f : E →ₗ[R] p} (hf : ∀ x : p, f x = x) : IsCompl p (ker f) := by constructor · rw [disjoint_iff_inf_le] @@ -71,7 +70,6 @@ namespace Submodule open LinearMap -set_option backward.isDefEq.respectTransparency false in /-- If `q` is a complement of `p`, then `M/p ≃ q`. -/ def quotientEquivOfIsCompl (h : IsCompl p q) : (E ⧸ p) ≃ₗ[R] q := LinearEquiv.symm <| @@ -94,7 +92,6 @@ theorem mk_quotientEquivOfIsCompl_apply (h : IsCompl p q) (x : E ⧸ p) : (Quotient.mk (quotientEquivOfIsCompl p q h x) : E ⧸ p) = x := (quotientEquivOfIsCompl p q h).symm_apply_apply x -set_option backward.isDefEq.respectTransparency false in /-- If `q` is a complement of `p`, then `p × q` is isomorphic to `E`. -/ def prodEquivOfIsCompl (h : IsCompl p q) : (p × q) ≃ₗ[R] E := by apply LinearEquiv.ofBijective (p.subtype.coprod q.subtype) diff --git a/Mathlib/LinearAlgebra/Projectivization/Basic.lean b/Mathlib/LinearAlgebra/Projectivization/Basic.lean index 8722be4bb49df8..a70fb4efb0c8c6 100644 --- a/Mathlib/LinearAlgebra/Projectivization/Basic.lean +++ b/Mathlib/LinearAlgebra/Projectivization/Basic.lean @@ -144,7 +144,6 @@ theorem finrank_submodule (v : ℙ K V) : finrank K v.submodule = 1 := by rw [submodule_eq] exact finrank_span_singleton v.rep_nonzero -set_option backward.isDefEq.respectTransparency false in instance (v : ℙ K V) : FiniteDimensional K v.submodule := by rw [← v.mk_rep] change FiniteDimensional K (K ∙ v.rep) @@ -159,7 +158,6 @@ theorem submodule_injective : variable (K V) -set_option backward.isDefEq.respectTransparency false in /-- The equivalence between the projectivization and the collection of subspaces of dimension 1. -/ noncomputable def equivSubmodule : ℙ K V ≃ { H : Submodule K V // finrank K H = 1 } := diff --git a/Mathlib/LinearAlgebra/QuadraticForm/Basic.lean b/Mathlib/LinearAlgebra/QuadraticForm/Basic.lean index ef0f2ed92f93e3..b80e8cf1bc028a 100644 --- a/Mathlib/LinearAlgebra/QuadraticForm/Basic.lean +++ b/Mathlib/LinearAlgebra/QuadraticForm/Basic.lean @@ -1281,7 +1281,6 @@ open Module variable {V : Type u} {K : Type v} [Field K] [AddCommGroup V] [Module K V] variable [FiniteDimensional K V] -set_option backward.isDefEq.respectTransparency false in /-- Given a symmetric bilinear form `B` on some vector space `V` over a field `K` in which `2` is invertible, there exists an orthogonal basis with respect to `B`. -/ theorem exists_orthogonal_basis [hK : Invertible (2 : K)] {B : LinearMap.BilinForm K V} diff --git a/Mathlib/LinearAlgebra/QuadraticForm/Radical.lean b/Mathlib/LinearAlgebra/QuadraticForm/Radical.lean index 8670cf2e1f5e2e..df01c340bda52d 100644 --- a/Mathlib/LinearAlgebra/QuadraticForm/Radical.lean +++ b/Mathlib/LinearAlgebra/QuadraticForm/Radical.lean @@ -86,7 +86,6 @@ lemma lift_mk {N : Submodule R M} (hN : N ≤ Q.radical) (m : M) : Q.lift N hN (Submodule.Quotient.mk m) = Q m := rfl -set_option backward.isDefEq.respectTransparency false in /-- Universal property of the radical of a quadratic form: `Q.radical` is the largest subspace `N` such that diff --git a/Mathlib/LinearAlgebra/Reflection.lean b/Mathlib/LinearAlgebra/Reflection.lean index 08c7b7bfcab650..b22336e7424458 100644 --- a/Mathlib/LinearAlgebra/Reflection.lean +++ b/Mathlib/LinearAlgebra/Reflection.lean @@ -373,7 +373,6 @@ lemma Dual.eq_of_preReflection_mapsTo [CharZero R] [IsDomain R] [IsTorsionFree R simpa [hn₁, hn₀.ne', hx, sub_eq_zero] using hu n exact u.isOfFinOrder_of_finite_of_span_eq_top_of_mapsTo hΦ₁ hΦ₂ (hg₂.comp hf₂) -set_option backward.isDefEq.respectTransparency false in /-- This rather technical-looking lemma exists because it is exactly what is needed to establish a uniqueness result for root data. See the doc string of `Module.Dual.eq_of_preReflection_mapsTo` for further remarks. -/ diff --git a/Mathlib/LinearAlgebra/RootSystem/BaseChange.lean b/Mathlib/LinearAlgebra/RootSystem/BaseChange.lean index 75275b9edf099f..b72ee38e87d3ff 100644 --- a/Mathlib/LinearAlgebra/RootSystem/BaseChange.lean +++ b/Mathlib/LinearAlgebra/RootSystem/BaseChange.lean @@ -64,7 +64,6 @@ section SubfieldValued variable [P.IsValuedIn K] -set_option backward.isDefEq.respectTransparency false in /-- Restriction of scalars for a root pairing taking values in a subfield. See also `RootPairing.restrictScalars`. -/ @@ -88,7 +87,6 @@ def restrictScalars' : reflectionPerm_coroot i j := by ext; simpa [algebra_compatible_smul L] using P.reflectionPerm_coroot i j -set_option backward.isDefEq.respectTransparency false in instance : (P.restrictScalars' K).IsRootSystem where span_root_eq_top := by rw [← span_setOf_mem_eq_top] @@ -101,23 +99,19 @@ instance : (P.restrictScalars' K).IsRootSystem where ext ⟨x, hx⟩ simp [restrictScalars'] -set_option backward.isDefEq.respectTransparency false in @[simp] lemma restrictScalars_toLinearMap_apply_apply (x : span K (range P.root)) (y : span K (range P.coroot)) : algebraMap K L ((P.restrictScalars' K).toLinearMap x y) = P.toLinearMap x y := by simp [restrictScalars'] -set_option backward.isDefEq.respectTransparency false in @[simp] lemma restrictScalars_coe_root (i : ι) : (P.restrictScalars' K).root i = P.root i := rfl -set_option backward.isDefEq.respectTransparency false in @[simp] lemma restrictScalars_coe_coroot (i : ι) : (P.restrictScalars' K).coroot i = P.coroot i := rfl -set_option backward.isDefEq.respectTransparency false in @[simp] lemma restrictScalars_pairing (i j : ι) : algebraMap K L ((P.restrictScalars' K).pairing i j) = P.pairing i j := by simp only [pairing, restrictScalars_toLinearMap_apply_apply, restrictScalars_coe_root, @@ -125,7 +119,6 @@ set_option backward.isDefEq.respectTransparency false in end SubfieldValued -set_option backward.isDefEq.respectTransparency false in /-- Restriction of scalars for a crystallographic root pairing. -/ abbrev restrictScalars [P.IsCrystallographic] : RootPairing ι K (span K (range P.root)) (span K (range P.coroot)) := diff --git a/Mathlib/LinearAlgebra/RootSystem/BaseExists.lean b/Mathlib/LinearAlgebra/RootSystem/BaseExists.lean index aa256a3b00e382..1e81aab162db19 100644 --- a/Mathlib/LinearAlgebra/RootSystem/BaseExists.lean +++ b/Mathlib/LinearAlgebra/RootSystem/BaseExists.lean @@ -59,7 +59,6 @@ lemma baseOf_pairwise_pairing_le_zero [CharZero R] [IsDomain R] [P.IsCrystallogr contrapose! this exact P.root_sub_root_mem_of_pairingIn_pos this hne -set_option backward.isDefEq.respectTransparency false in /-- This lemma is usually established for root systems with coefficients `R` equal to `ℚ` or `ℝ`, in which case one may take `S = R`. However our statement allows for more general coefficients such as `R = ℂ` and `S = ℚ`. @@ -114,7 +113,6 @@ section Field variable [Field R] [CharZero R] [Module R M] [Module R N] (P : RootPairing ι R M N) [P.IsRootSystem] [P.IsCrystallographic] -set_option backward.isDefEq.respectTransparency false in lemma linearIndepOn_root_baseOf (f : M →+ ℚ) (hf : ∀ i, f (P.root i) ≠ 0) : LinearIndepOn R P.root (baseOf P.root f) := by let _i : Module ℚ M := Module.compHom M (algebraMap ℚ R) diff --git a/Mathlib/LinearAlgebra/RootSystem/Finite/Lemmas.lean b/Mathlib/LinearAlgebra/RootSystem/Finite/Lemmas.lean index 6074e571edcc5a..a6fc707eedcc81 100644 --- a/Mathlib/LinearAlgebra/RootSystem/Finite/Lemmas.lean +++ b/Mathlib/LinearAlgebra/RootSystem/Finite/Lemmas.lean @@ -46,7 +46,6 @@ variable (P : RootPairing ι R M N) [Finite ι] local notation "Φ" => range P.root local notation "α" => P.root -set_option backward.isDefEq.respectTransparency false in /-- SGA3 XXI Prop. 2.3.1 -/ lemma coxeterWeightIn_le_four (S : Type*) [CommRing S] [LinearOrder S] [IsStrictOrderedRing S] [Algebra S R] [FaithfulSMul S R] diff --git a/Mathlib/LinearAlgebra/RootSystem/RootPositive.lean b/Mathlib/LinearAlgebra/RootSystem/RootPositive.lean index 334660187d5e33..ce49a7138e2d42 100644 --- a/Mathlib/LinearAlgebra/RootSystem/RootPositive.lean +++ b/Mathlib/LinearAlgebra/RootSystem/RootPositive.lean @@ -172,7 +172,6 @@ def rootLength (i : ι) : S := lemma rootLength_pos (i : ι) : 0 < B.rootLength i := by simpa using B.zero_lt_posForm_apply_root i -set_option backward.isDefEq.respectTransparency false in @[simp] lemma rootLength_reflectionPerm_self (i : ι) : B.rootLength (P.reflectionPerm i i) = B.rootLength i := by diff --git a/Mathlib/LinearAlgebra/Semisimple.lean b/Mathlib/LinearAlgebra/Semisimple.lean index 7e82462a13356a..0310d476075bfb 100644 --- a/Mathlib/LinearAlgebra/Semisimple.lean +++ b/Mathlib/LinearAlgebra/Semisimple.lean @@ -60,7 +60,6 @@ structure on `M` is semisimple. This is equivalent to saying that every `f`-inva of `M` has an `f`-invariant complement: see `Module.End.isSemisimple_iff`. -/ def IsSemisimple := IsSemisimpleModule R[X] (AEval' f) -set_option backward.isDefEq.respectTransparency false in /-- A weaker version of semisimplicity that only prescribes behaviour on finitely-generated submodules. -/ def IsFinitelySemisimple : Prop := @@ -95,7 +94,6 @@ lemma isSemisimple_restrict_iff (p) (hp : p ∈ invtSubmodule f) : exists_and_left, exists_and_right, invtSubmodule.mk_eq_bot_iff, exists_prop, and_assoc] rfl -set_option backward.isDefEq.respectTransparency false in /-- A linear endomorphism is finitely semisimple if it is semisimple on every finitely-generated invariant submodule. @@ -140,7 +138,6 @@ lemma eq_zero_of_isNilpotent_isSemisimple (hn : IsNilpotent f) (hs : f.IsSemisim rw [← RingHom.mem_ker, ← AEval.annihilator_eq_ker_aeval (M := M)] at h0 ⊢ exact hs.annihilator_isRadical _ _ ⟨n, h0⟩ -set_option backward.isDefEq.respectTransparency false in lemma eq_zero_of_isNilpotent_of_isFinitelySemisimple (hn : IsNilpotent f) (hs : IsFinitelySemisimple f) : f = 0 := by have (p) (hp₁ : p ∈ f.invtSubmodule) (hp₂ : Module.Finite R p) : f.restrict hp₁ = 0 := by @@ -202,7 +199,6 @@ lemma isFinitelySemisimple_sub_algebraMap_iff {μ : R} : refine fun p ↦ ⟨fun h x hx ↦ ?_, fun h x hx ↦ p.sub_mem (h hx) (p.smul_mem μ hx)⟩ simpa using p.add_mem (h hx) (p.smul_mem μ hx) -set_option backward.isDefEq.respectTransparency false in lemma IsFinitelySemisimple.restrict {p : Submodule R M} (hp : p ∈ f.invtSubmodule) (hf : f.IsFinitelySemisimple) : IsFinitelySemisimple (f.restrict hp) := by diff --git a/Mathlib/LinearAlgebra/SesquilinearForm/Basic.lean b/Mathlib/LinearAlgebra/SesquilinearForm/Basic.lean index 3263de18ec502a..b5627398ef5cae 100644 --- a/Mathlib/LinearAlgebra/SesquilinearForm/Basic.lean +++ b/Mathlib/LinearAlgebra/SesquilinearForm/Basic.lean @@ -802,7 +802,6 @@ lemma disjoint_ker_of_nondegenerate_restrict {B : M →ₗ[R] M →ₗ[R] M₁} rw [mem_ker] at hx' simp [x', hx'] -set_option backward.isDefEq.respectTransparency false in lemma IsSymm.nondegenerate_restrict_of_isCompl_ker {B : M →ₗ[R] M →ₗ[R] R} (hB : B.IsSymm) {W : Submodule R M} (hW : IsCompl W (LinearMap.ker B)) : (B.domRestrict₁₂ W W).Nondegenerate := by @@ -820,7 +819,6 @@ lemma IsSymm.nondegenerate_restrict_of_isCompl_ker {B : M →ₗ[R] M →ₗ[R] exact hx' u hu simpa [hW.inf_eq_bot] using hx' -set_option backward.isDefEq.respectTransparency false in /-- The restriction of a reflexive bilinear map `B` onto a submodule `W` is nondegenerate if `W` has trivial intersection with its orthogonal complement, that is `Disjoint W (W.orthogonalBilin B)`. -/ @@ -990,7 +988,6 @@ lemma nondegenerate_iff' (hs : ∀ x, 0 ≤ B x x) (hB : B.IsSymm) : contrapose! exact exists_congr fun x ↦ ⟨by aesop, fun ⟨h₀, h⟩ ↦ Or.inl ⟨le_antisymm h (hs x), h₀⟩⟩ -set_option backward.isDefEq.respectTransparency false in lemma nondegenerate_restrict_iff_disjoint_ker (hs : ∀ x, 0 ≤ B x x) (hB : B.IsSymm) {W : Submodule R M} : (B.domRestrict₁₂ W W).Nondegenerate ↔ Disjoint W (LinearMap.ker B) := by diff --git a/Mathlib/LinearAlgebra/Span/Basic.lean b/Mathlib/LinearAlgebra/Span/Basic.lean index c12110aadefe92..b4a063da3638d8 100644 --- a/Mathlib/LinearAlgebra/Span/Basic.lean +++ b/Mathlib/LinearAlgebra/Span/Basic.lean @@ -577,7 +577,6 @@ lemma biSup_comap_eq_top_of_surjective {ι : Type*} (s : Set ι) (hs : s.Nonempt rw [iSup_subtype'] at hp ⊢ rw [← comap_map_eq, map_iSup_comap_of_surjective hf, hp, comap_top] -set_option backward.isDefEq.respectTransparency false in lemma biSup_comap_eq_top_of_range_eq_biSup {R R₂ : Type*} [Semiring R] [Ring R₂] {τ₁₂ : R →+* R₂} [RingHomSurjective τ₁₂] [Module R M] [Module R₂ M₂] {ι : Type*} (s : Set ι) (hs : s.Nonempty) diff --git a/Mathlib/LinearAlgebra/Span/TensorProduct.lean b/Mathlib/LinearAlgebra/Span/TensorProduct.lean index 2b51c38e6c93dd..b918f6da8d7809 100644 --- a/Mathlib/LinearAlgebra/Span/TensorProduct.lean +++ b/Mathlib/LinearAlgebra/Span/TensorProduct.lean @@ -108,7 +108,6 @@ variable [CommRing R] [CommRing A] [Nontrivial A] let b₂ : Basis ι A (span A (p : Set M)) := (b₁.baseChange A).map <| p.tensorEquivSpan A rw [finrank_eq_card_basis b₁, finrank_eq_card_basis b₂] -set_option backward.isDefEq.respectTransparency false in variable (R) in lemma finrank_span_eq_finrank_span [IsPrincipalIdealRing R] [IsDomain R] [IsTorsionFree R M] (s : Set M) [Module.Finite R (span R s)] : diff --git a/Mathlib/LinearAlgebra/TensorProduct/Graded/Internal.lean b/Mathlib/LinearAlgebra/TensorProduct/Graded/Internal.lean index 8372c01950142e..fb1fcbd9f5d12f 100644 --- a/Mathlib/LinearAlgebra/TensorProduct/Graded/Internal.lean +++ b/Mathlib/LinearAlgebra/TensorProduct/Graded/Internal.lean @@ -142,7 +142,6 @@ theorem auxEquiv_symm_one : (auxEquiv R 𝒜 ℬ).symm 1 = 1 := variable [Module ι (Additive ℤˣ)] -set_option backward.isDefEq.respectTransparency false in /-- Auxiliary construction used to build the `Mul` instance and get distributivity of `+` and `\smul`. -/ noncomputable def mulHom : (𝒜 ᵍ⊗[R] ℬ) →ₗ[R] (𝒜 ᵍ⊗[R] ℬ) →ₗ[R] (𝒜 ᵍ⊗[R] ℬ) := by @@ -151,7 +150,6 @@ noncomputable def mulHom : (𝒜 ᵍ⊗[R] ℬ) →ₗ[R] (𝒜 ᵍ⊗[R] ℬ) fAB1.symm.toLinearMap exact this -set_option backward.isDefEq.respectTransparency false in theorem mulHom_apply (x y : 𝒜 ᵍ⊗[R] ℬ) : mulHom 𝒜 ℬ x y = (auxEquiv R 𝒜 ℬ).symm (gradedMul R (𝒜 ·) (ℬ ·) (auxEquiv R 𝒜 ℬ x) (auxEquiv R 𝒜 ℬ y)) := @@ -164,13 +162,11 @@ instance : Mul (𝒜 ᵍ⊗[R] ℬ) where mul x y := mulHom 𝒜 ℬ x y theorem mul_def (x y : 𝒜 ᵍ⊗[R] ℬ) : x * y = mulHom 𝒜 ℬ x y := rfl -set_option backward.isDefEq.respectTransparency false in -- Before https://github.com/leanprover-community/mathlib4/pull/8386 this was `@[simp]` but it times out when we try to apply it. theorem auxEquiv_mul (x y : 𝒜 ᵍ⊗[R] ℬ) : auxEquiv R 𝒜 ℬ (x * y) = gradedMul R (𝒜 ·) (ℬ ·) (auxEquiv R 𝒜 ℬ x) (auxEquiv R 𝒜 ℬ y) := LinearEquiv.eq_symm_apply _ |>.mp rfl -set_option backward.isDefEq.respectTransparency false in instance instMonoid : Monoid (𝒜 ᵍ⊗[R] ℬ) where mul_one x := by rw [mul_def, mulHom_apply, auxEquiv_one, gradedMul_one, LinearEquiv.symm_apply_apply] @@ -251,7 +247,6 @@ def includeLeftRingHom : A →+* 𝒜 ᵍ⊗[R] ℬ where rw [← SetLike.coe_gOne ℬ, tmul_coe_mul_coe_tmul, zero_mul, uzpow_zero, one_smul, SetLike.coe_gOne, one_mul] -set_option backward.isDefEq.respectTransparency false in instance instAlgebra : Algebra R (𝒜 ᵍ⊗[R] ℬ) where algebraMap := (includeLeftRingHom 𝒜 ℬ).comp (algebraMap R A) commutes' r x := by @@ -382,7 +377,6 @@ def comm : (𝒜 ᵍ⊗[R] ℬ) ≃ₐ[R] (ℬ ᵍ⊗[R] 𝒜) := simp_rw [auxEquiv_mul, gradedComm_gradedMul, LinearEquiv.symm_apply_eq, ← gradedComm_gradedMul, auxEquiv_mul, LinearEquiv.apply_symm_apply, gradedComm_gradedMul]) -set_option backward.isDefEq.respectTransparency false in lemma auxEquiv_comm (x : 𝒜 ᵍ⊗[R] ℬ) : auxEquiv R ℬ 𝒜 (comm 𝒜 ℬ x) = gradedComm R (𝒜 ·) (ℬ ·) (auxEquiv R 𝒜 ℬ x) := LinearEquiv.eq_symm_apply _ |>.mp rfl diff --git a/Mathlib/LinearAlgebra/TensorProduct/RightExactness.lean b/Mathlib/LinearAlgebra/TensorProduct/RightExactness.lean index 7217c7fe22e25b..1080461a351f67 100644 --- a/Mathlib/LinearAlgebra/TensorProduct/RightExactness.lean +++ b/Mathlib/LinearAlgebra/TensorProduct/RightExactness.lean @@ -292,7 +292,6 @@ theorem lTensor_exact : Exact (lTensor Q f) (lTensor Q g) := by rw [LinearMap.ker_eq_bot] exact (lTensor.equiv Q hfg hg).symm.injective -set_option backward.isDefEq.respectTransparency false in /-- Right-exactness of tensor product -/ lemma lTensor_mkQ (N : Submodule R M) : ker (lTensor Q N.mkQ) = range (lTensor Q N.subtype) := by @@ -395,7 +394,6 @@ theorem rTensor_exact : Exact (rTensor Q f) (rTensor Q g) := by rw [rTensor_exact_iff_lTensor_exact] exact lTensor_exact Q hfg hg -set_option backward.isDefEq.respectTransparency false in /-- Right-exactness of tensor product (`rTensor`) -/ lemma rTensor_mkQ (N : Submodule R M) : ker (rTensor Q N.mkQ) = range (rTensor Q N.subtype) := by @@ -582,7 +580,6 @@ variable {R S : Type*} [CommRing R] [CommRing S] [Algebra R S] [IsScalarTower R S A] [IsScalarTower R S B] (f : A →ₐ[S] B) (g : C →ₐ[R] D) -set_option backward.isDefEq.respectTransparency false in /-- If `g` is surjective, then the kernel of `(id A) ⊗ g` is generated by the kernel of `g` -/ lemma Algebra.TensorProduct.lTensor_ker (hg : Function.Surjective g) : RingHom.ker (map (AlgHom.id R A) g) = @@ -594,7 +591,6 @@ lemma Algebra.TensorProduct.lTensor_ker (hg : Function.Surjective g) : rw [(lTensor_exact A g.toLinearMap.exact_subtype_ker_map hg).linearMap_ker_eq] rfl -set_option backward.isDefEq.respectTransparency false in /-- If `f` is surjective, then the kernel of `f ⊗ (id B)` is generated by the kernel of `f` -/ lemma Algebra.TensorProduct.rTensor_ker (hf : Function.Surjective f) : RingHom.ker (map f (AlgHom.id R C)) = diff --git a/Mathlib/LinearAlgebra/TensorProduct/Vanishing.lean b/Mathlib/LinearAlgebra/TensorProduct/Vanishing.lean index bb9c19f02749f7..1e498515dd5226 100644 --- a/Mathlib/LinearAlgebra/TensorProduct/Vanishing.lean +++ b/Mathlib/LinearAlgebra/TensorProduct/Vanishing.lean @@ -182,7 +182,6 @@ theorem vanishesTrivially_iff_sum_tmul_eq_zero (hm : Submodule.span R (Set.range VanishesTrivially R m n ↔ ∑ i, m i ⊗ₜ n i = (0 : M ⊗[R] N) := ⟨sum_tmul_eq_zero_of_vanishesTrivially R, vanishesTrivially_of_sum_tmul_eq_zero R hm⟩ -set_option backward.isDefEq.respectTransparency false in /-- **Equational criterion for vanishing** [A. Altman and S. Kleiman, *A term of commutative algebra* (Lemma 8.16)][altman2021term], forward direction, generalization. diff --git a/Mathlib/LinearAlgebra/Trace.lean b/Mathlib/LinearAlgebra/Trace.lean index f86690b585c016..8a03d9f1cd8258 100644 --- a/Mathlib/LinearAlgebra/Trace.lean +++ b/Mathlib/LinearAlgebra/Trace.lean @@ -327,7 +327,6 @@ proof_wanted _root_.Matrix.trace_map' {K m F : Type*} [Field K] [Fintype m] [Dec [FunLike F (Matrix m m K) (Matrix m m K)] [AlgHomClass F K _ _] (f : F) (x : Matrix m m K) : (f x).trace = x.trace -set_option backward.isDefEq.respectTransparency false in theorem IsProj.trace {p : Submodule R M} {f : M →ₗ[R] M} (h : IsProj p f) [Module.Free R p] [Module.Finite R p] [Module.Free R (ker f)] [Module.Finite R (ker f)] : trace R M f = (finrank R p : R) := by diff --git a/Mathlib/LinearAlgebra/Transvection.lean b/Mathlib/LinearAlgebra/Transvection.lean index f762226d3b6f8c..243139e421de91 100644 --- a/Mathlib/LinearAlgebra/Transvection.lean +++ b/Mathlib/LinearAlgebra/Transvection.lean @@ -284,7 +284,6 @@ theorem dilatransvections_pow_mono : Monotone (fun n : ℕ ↦ (dilatransvections R V) ^ n) := Set.pow_right_monotone one_mem_dilatransvections -set_option backward.isDefEq.respectTransparency false in /-- Over a division ring, `dilatransvections` correspond to linear equivalences `e` such that the linear map `e - id` has rank at most 1. diff --git a/Mathlib/MeasureTheory/Function/ConditionalExpectation/AEMeasurable.lean b/Mathlib/MeasureTheory/Function/ConditionalExpectation/AEMeasurable.lean index 7d6fe8176312c8..49af52b180db3b 100644 --- a/Mathlib/MeasureTheory/Function/ConditionalExpectation/AEMeasurable.lean +++ b/Mathlib/MeasureTheory/Function/ConditionalExpectation/AEMeasurable.lean @@ -359,7 +359,6 @@ section Induction variable {m m0 : MeasurableSpace α} {μ : Measure α} [Fact (1 ≤ p)] [NormedSpace ℝ F] -set_option backward.isDefEq.respectTransparency false in /-- Auxiliary lemma for `Lp.induction_stronglyMeasurable`. -/ @[elab_as_elim] theorem Lp.induction_stronglyMeasurable_aux (hm : m ≤ m0) (hp_ne_top : p ≠ ∞) (P : Lp F p μ → Prop) diff --git a/Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL1.lean b/Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL1.lean index 46496a378f6219..b80b443991c68c 100644 --- a/Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL1.lean +++ b/Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL1.lean @@ -410,7 +410,6 @@ theorem aestronglyMeasurable_condExpL1CLM (f : α →₁[μ] F') : refine IsClosed.preimage (condExpL1CLM F' hm μ).continuous ?_ exact isClosed_aestronglyMeasurable hm -set_option backward.isDefEq.respectTransparency false in theorem condExpL1CLM_lpMeas (f : lpMeas F' ℝ m 1 μ) : condExpL1CLM F' hm μ (f : α →₁[μ] F') = ↑f := by let g := lpMeasToLpTrimLie F' ℝ 1 μ hm f diff --git a/Mathlib/MeasureTheory/Integral/IntervalIntegral/Periodic.lean b/Mathlib/MeasureTheory/Integral/IntervalIntegral/Periodic.lean index c4d87d56cf9e2c..5b97f3a8563775 100644 --- a/Mathlib/MeasureTheory/Integral/IntervalIntegral/Periodic.lean +++ b/Mathlib/MeasureTheory/Integral/IntervalIntegral/Periodic.lean @@ -275,7 +275,6 @@ variable {E : Type*} [NormedAddCommGroup E] variable {f : ℝ → E} {T : ℝ} -set_option backward.isDefEq.respectTransparency false in /-- A periodic function is interval integrable over every interval if it is interval integrable over one period. @@ -342,7 +341,6 @@ theorem intervalIntegrable₀ (h₁f : Function.Periodic f T) (hT : T ≠ 0) variable [NormedSpace ℝ E] -set_option backward.isDefEq.respectTransparency false in /-- If `f` is a periodic function with period `T`, then its integral over `[t, t + T]` does not depend on `t`. -/ theorem intervalIntegral_add_eq (hf : Periodic f T) (t s : ℝ) : diff --git a/Mathlib/MeasureTheory/Measure/CharacteristicFunction.lean b/Mathlib/MeasureTheory/Measure/CharacteristicFunction.lean index 9685b42f46e4b5..b167e4f1b8a479 100644 --- a/Mathlib/MeasureTheory/Measure/CharacteristicFunction.lean +++ b/Mathlib/MeasureTheory/Measure/CharacteristicFunction.lean @@ -248,7 +248,6 @@ theorem Measure.ext_of_charFun [CompleteSpace E] · exact fun v hv ↦ DFunLike.ne_iff.mpr ⟨v, inner_self_ne_zero.mpr hv⟩ · exact continuous_inner -set_option backward.isDefEq.respectTransparency false in /-- The characteristic function of a convolution of measures is the product of the respective characteristic functions. -/ lemma charFun_conv [IsFiniteMeasure μ] [IsFiniteMeasure ν] (t : E) : diff --git a/Mathlib/MeasureTheory/Measure/Haar/Disintegration.lean b/Mathlib/MeasureTheory/Measure/Haar/Disintegration.lean index 9f7fc11d3d1c44..ff0b9cb2212e61 100644 --- a/Mathlib/MeasureTheory/Measure/Haar/Disintegration.lean +++ b/Mathlib/MeasureTheory/Measure/Haar/Disintegration.lean @@ -40,7 +40,6 @@ variable {𝕜 E F : Type*} variable [LocallyCompactSpace E] variable (L μ ν) -set_option backward.isDefEq.respectTransparency false in /-- The image of an additive Haar measure under a surjective linear map is proportional to a given additive Haar measure. The proportionality factor will be infinite if the linear map has a nontrivial kernel. -/ diff --git a/Mathlib/MeasureTheory/SetSemiring.lean b/Mathlib/MeasureTheory/SetSemiring.lean index df6fb2d5977a7e..16c5630003dd4b 100644 --- a/Mathlib/MeasureTheory/SetSemiring.lean +++ b/Mathlib/MeasureTheory/SetSemiring.lean @@ -183,7 +183,6 @@ lemma sUnion_disjointOfDiff (hC : IsSetSemiring C) (hs : s ∈ C) (ht : t ∈ C) simp only [disjointOfDiff, coe_sdiff, coe_singleton] rw [sUnion_diff_singleton_empty] -set_option backward.isDefEq.respectTransparency false in lemma notMem_disjointOfDiff (hC : IsSetSemiring C) (hs : s ∈ C) (ht : t ∈ C) : t ∉ hC.disjointOfDiff hs ht := by intro hs_mem diff --git a/Mathlib/ModelTheory/Algebra/Ring/Basic.lean b/Mathlib/ModelTheory/Algebra/Ring/Basic.lean index 343f4032178407..0c8a8fe710e958 100644 --- a/Mathlib/ModelTheory/Algebra/Ring/Basic.lean +++ b/Mathlib/ModelTheory/Algebra/Ring/Basic.lean @@ -123,7 +123,6 @@ instance (α : Type*) : Neg (Language.ring.Term α) := theorem neg_def (α : Type*) (t : Language.ring.Term α) : -t = negFunc.apply₁ t := rfl -set_option backward.isDefEq.respectTransparency false in instance : Fintype Language.ring.Symbols := ⟨⟨Multiset.ofList [Sum.inl ⟨2, .add⟩, diff --git a/Mathlib/ModelTheory/Definability.lean b/Mathlib/ModelTheory/Definability.lean index 7a0742b047d2db..dce057782edc98 100644 --- a/Mathlib/ModelTheory/Definability.lean +++ b/Mathlib/ModelTheory/Definability.lean @@ -429,7 +429,6 @@ theorem TermDefinable.map_expansion (h : A.TermDefinable L f) (φ : L →ᴸ L') use (φ.addConstants A).onTerm ψ simp -set_option backward.isDefEq.respectTransparency false in theorem termDefinable_empty_iff : (∅ : Set M).TermDefinable L f ↔ ∃ φ : L.Term α, f = φ.realize := by rw [TermDefinable, Equiv.exists_congr_left (LEquiv.addEmptyConstants L (∅ : Set M)).onTerm] diff --git a/Mathlib/ModelTheory/Order.lean b/Mathlib/ModelTheory/Order.lean index ee7845849e7f72..25ffab57fbe67d 100644 --- a/Mathlib/ModelTheory/Order.lean +++ b/Mathlib/ModelTheory/Order.lean @@ -385,7 +385,6 @@ def partialOrderOfModels [h : M ⊨ L.partialOrderTheory] : PartialOrder M where le_antisymm := (Relations.realize_antisymmetric.mp <| Theory.model_iff _ |>.mp h _ <| by simp [partialOrderTheory]).antisymm -set_option backward.isDefEq.respectTransparency false in /-- Any model of a theory of linear orders is a linear order. -/ def linearOrderOfModels [h : M ⊨ L.linearOrderTheory] [DecidableRel (fun (a b : M) => Structure.RelMap (leSymb : L.Relations 2) ![a, b])] : @@ -459,7 +458,6 @@ section Fraisse variable (M) -set_option backward.isDefEq.respectTransparency false in lemma dlo_isExtensionPair (M : Type w) [Language.order.Structure M] [M ⊨ Language.order.linearOrderTheory] (N : Type w') [Language.order.Structure N] [N ⊨ Language.order.dlo] [Nonempty N] : diff --git a/Mathlib/ModelTheory/Types.lean b/Mathlib/ModelTheory/Types.lean index e474b8f52d6621..8870155028160d 100644 --- a/Mathlib/ModelTheory/Types.lean +++ b/Mathlib/ModelTheory/Types.lean @@ -221,7 +221,6 @@ def realizedTypes (α : Type w) : Set (T.CompleteType α) := section -set_option backward.isDefEq.respectTransparency false in theorem exists_modelType_is_realized_in (p : T.CompleteType α) : ∃ M : Theory.ModelType.{u, v, max u v w} T, p ∈ T.realizedTypes M α := by obtain ⟨M⟩ := p.isMaximal.1 diff --git a/Mathlib/NumberTheory/Cyclotomic/Basic.lean b/Mathlib/NumberTheory/Cyclotomic/Basic.lean index 550c07788958ff..417091d6977f9a 100644 --- a/Mathlib/NumberTheory/Cyclotomic/Basic.lean +++ b/Mathlib/NumberTheory/Cyclotomic/Basic.lean @@ -780,7 +780,6 @@ namespace CyclotomicRing instance : CommRing (CyclotomicRing n A K) := by delta CyclotomicRing; infer_instance -set_option backward.isDefEq.respectTransparency false in instance : IsDomain (CyclotomicRing n A K) := by delta CyclotomicRing; infer_instance diff --git a/Mathlib/NumberTheory/NumberField/CanonicalEmbedding/ConvexBody.lean b/Mathlib/NumberTheory/NumberField/CanonicalEmbedding/ConvexBody.lean index 8548c681414a4c..80c75e9104170b 100644 --- a/Mathlib/NumberTheory/NumberField/CanonicalEmbedding/ConvexBody.lean +++ b/Mathlib/NumberTheory/NumberField/CanonicalEmbedding/ConvexBody.lean @@ -559,7 +559,6 @@ theorem exists_primitive_element_lt_of_isReal {w₀ : InfinitePlace K} (hw₀ : (fun w h_ne ↦ by convert (if_neg h_ne) ▸ h_le w) (Or.inl hw₀) · split_ifs <;> simp -set_option backward.isDefEq.respectTransparency false in theorem exists_primitive_element_lt_of_isComplex {w₀ : InfinitePlace K} (hw₀ : IsComplex w₀) {B : ℝ≥0} (hB : minkowskiBound K ↑1 < convexBodyLT'Factor K * B) : ∃ a : 𝓞 K, ℚ⟮(a : K)⟯ = ⊤ ∧ diff --git a/Mathlib/NumberTheory/NumberField/FractionalIdeal.lean b/Mathlib/NumberTheory/NumberField/FractionalIdeal.lean index e48ac87580ab33..ee34fba4c51200 100644 --- a/Mathlib/NumberTheory/NumberField/FractionalIdeal.lean +++ b/Mathlib/NumberTheory/NumberField/FractionalIdeal.lean @@ -50,7 +50,6 @@ instance (I : FractionalIdeal (𝓞 K)⁰ K) : Module.Finite ℤ I := by (LinearEquiv.restrictScalars ℤ (I.equivNum ?_)).symm.toLinearMap (LinearEquiv.surjective _) exact nonZeroDivisors.coe_ne_zero I.den -set_option backward.isDefEq.respectTransparency false in instance (I : (FractionalIdeal (𝓞 K)⁰ K)ˣ) : IsLocalizedModule ℤ⁰ ((Submodule.subtype (I : Submodule (𝓞 K) K)).restrictScalars ℤ) where map_units x := by @@ -75,19 +74,16 @@ instance (I : (FractionalIdeal (𝓞 K)⁰ K)ˣ) : exists_of_eq h := ⟨1, by rwa [one_smul, one_smul, ← (Submodule.injective_subtype I.1.coeToSubmodule).eq_iff]⟩ -set_option backward.isDefEq.respectTransparency false in /-- A `ℤ`-basis of a fractional ideal. -/ noncomputable def fractionalIdealBasis (I : FractionalIdeal (𝓞 K)⁰ K) : Basis (Free.ChooseBasisIndex ℤ I) ℤ I := Free.chooseBasis ℤ I -set_option backward.isDefEq.respectTransparency false in /-- A `ℚ`-basis of `K` that spans `I` over `ℤ`, see `mem_span_basisOfFractionalIdeal` below. -/ noncomputable def basisOfFractionalIdeal (I : (FractionalIdeal (𝓞 K)⁰ K)ˣ) : Basis (Free.ChooseBasisIndex ℤ I) ℚ K := (fractionalIdealBasis K I.1).ofIsLocalizedModule ℚ ℤ⁰ ((Submodule.subtype (I : Submodule (𝓞 K) K)).restrictScalars ℤ) -set_option backward.isDefEq.respectTransparency false in theorem basisOfFractionalIdeal_apply (I : (FractionalIdeal (𝓞 K)⁰ K)ˣ) (i : Free.ChooseBasisIndex ℤ I) : basisOfFractionalIdeal K I i = fractionalIdealBasis K I.1 i := @@ -98,7 +94,6 @@ theorem mem_span_basisOfFractionalIdeal {I : (FractionalIdeal (𝓞 K)⁰ K)ˣ} rw [basisOfFractionalIdeal, (fractionalIdealBasis K I.1).ofIsLocalizedModule_span ℚ ℤ⁰ _] simp -set_option backward.isDefEq.respectTransparency false in open Module in theorem fractionalIdeal_rank (I : (FractionalIdeal (𝓞 K)⁰ K)ˣ) : finrank ℤ I = finrank ℤ (𝓞 K) := by @@ -111,7 +106,6 @@ section Norm open Module -set_option backward.isDefEq.respectTransparency false in /-- The absolute value of the determinant of the base change from `integralBasis` to `basisOfFractionalIdeal I` is equal to the norm of `I`. -/ theorem det_basisOfFractionalIdeal_eq_absNorm (I : (FractionalIdeal (𝓞 K)⁰ K)ˣ) diff --git a/Mathlib/NumberTheory/NumberField/Ideal/KummerDedekind.lean b/Mathlib/NumberTheory/NumberField/Ideal/KummerDedekind.lean index f1064423717c56..8cebbecf904a8a 100644 --- a/Mathlib/NumberTheory/NumberField/Ideal/KummerDedekind.lean +++ b/Mathlib/NumberTheory/NumberField/Ideal/KummerDedekind.lean @@ -80,7 +80,6 @@ theorem exponent_eq_sInf : exponent θ = sInf {d : ℕ | 0 < d ∧ (d : 𝓞 K) variable [NumberField K] {θ : 𝓞 K} {p : ℕ} [Fact p.Prime] -set_option backward.whnf.reducibleClassField false in set_option backward.isDefEq.respectTransparency false in /-- If `p` doesn't divide the exponent of `θ`, then `(ℤ / pℤ)[X] / (minpoly θ) ≃+* 𝓞 K / p(𝓞 K)`. @@ -94,7 +93,6 @@ def ZModXQuotSpanEquivQuotSpan (hp : ¬ p ∣ exponent θ) : (quotientEquivAlgOfEq ℤ (by simp [map_span])).toRingEquiv)) set_option backward.isDefEq.respectTransparency false in -set_option backward.whnf.reducibleClassField false in theorem ZModXQuotSpanEquivQuotSpan_mk_apply (hp : ¬ p ∣ exponent θ) (Q : ℤ[X]) : (ZModXQuotSpanEquivQuotSpan hp) (Ideal.Quotient.mk (span {map (Int.castRingHom (ZMod p)) (minpoly ℤ θ)}) diff --git a/Mathlib/NumberTheory/NumberField/InfinitePlace/Basic.lean b/Mathlib/NumberTheory/NumberField/InfinitePlace/Basic.lean index 12ec6f153c57ee..b25d1ed2713a19 100644 --- a/Mathlib/NumberTheory/NumberField/InfinitePlace/Basic.lean +++ b/Mathlib/NumberTheory/NumberField/InfinitePlace/Basic.lean @@ -140,7 +140,6 @@ theorem le_iff_le (x : K) (r : ℝ) : (∀ w : InfinitePlace K, w x ≤ r) ↔ theorem pos_iff {w : InfinitePlace K} {x : K} : 0 < w x ↔ x ≠ 0 := AbsoluteValue.pos_iff w.1 -set_option backward.isDefEq.respectTransparency false in @[simp] theorem mk_eq_iff {φ ψ : K →+* ℂ} : mk φ = mk ψ ↔ φ = ψ ∨ ComplexEmbedding.conjugate φ = ψ := by constructor diff --git a/Mathlib/NumberTheory/NumberField/InfinitePlace/TotallyRealComplex.lean b/Mathlib/NumberTheory/NumberField/InfinitePlace/TotallyRealComplex.lean index b0e33681065c62..bfbe19e74c968e 100644 --- a/Mathlib/NumberTheory/NumberField/InfinitePlace/TotallyRealComplex.lean +++ b/Mathlib/NumberTheory/NumberField/InfinitePlace/TotallyRealComplex.lean @@ -181,7 +181,6 @@ instance isTotallyReal_sup {E F : Subfield K} [hE : IsTotallyReal E] [hF : IsTot ← isTotallyReal_iff_le_maximalRealSubfield, ← isTotallyReal_iff_le_maximalRealSubfield] exact ⟨hE, hF⟩ -set_option backward.isDefEq.respectTransparency false in instance isTotallyReal_iSup {ι : Type*} {k : ι → Subfield K} [∀ i, IsTotallyReal (k i)] : IsTotallyReal (⨆ i, k i : Subfield K) := by obtain hι | ⟨⟨i⟩⟩ := isEmpty_or_nonempty ι diff --git a/Mathlib/NumberTheory/Padics/PadicVal/Basic.lean b/Mathlib/NumberTheory/Padics/PadicVal/Basic.lean index 6bc0fbc0e6e51c..04666004744e5a 100644 --- a/Mathlib/NumberTheory/Padics/PadicVal/Basic.lean +++ b/Mathlib/NumberTheory/Padics/PadicVal/Basic.lean @@ -91,7 +91,6 @@ theorem maxPowDiv_eq_emultiplicity {p n : ℕ} (hp : 1 < p) (hn : n ≠ 0) : apply Nat.not_lt.mpr <| le_of_dvd hp hn h simp -set_option backward.isDefEq.respectTransparency false in theorem maxPowDiv_eq_multiplicity {p n : ℕ} (hp : 1 < p) (hn : n ≠ 0) (h : FiniteMultiplicity p n) : p.maxPowDiv n = multiplicity p n := by exact_mod_cast h.emultiplicity_eq_multiplicity ▸ maxPowDiv_eq_emultiplicity hp hn @@ -450,7 +449,6 @@ theorem pow_padicValNat_dvd {n : ℕ} : p ^ padicValNat p n ∣ n := by apply pow_dvd_of_le_multiplicity rw [padicValNat_def'] <;> assumption -set_option backward.isDefEq.respectTransparency false in theorem padicValNat_dvd_iff_le [hp : Fact p.Prime] {a n : ℕ} (ha : a ≠ 0) : p ^ n ∣ a ↔ n ≤ padicValNat p a := by rw [pow_dvd_iff_le_emultiplicity, ← padicValNat_eq_emultiplicity ha, @@ -556,7 +554,6 @@ theorem range_pow_padicValNat_subset_divisors' {n : ℕ} [hp : Fact p.Prime] : refine ⟨?_, (pow_dvd_pow p <| succ_le_iff.2 hk).trans pow_padicValNat_dvd, hn⟩ exact (Nat.one_lt_pow k.succ_ne_zero hp.out.one_lt).ne' -set_option backward.isDefEq.respectTransparency false in /-- The `p`-adic valuation of `(p * n)!` is `n` more than that of `n!`. -/ theorem padicValNat_factorial_mul (n : ℕ) [hp : Fact p.Prime] : padicValNat p (p * n)! = padicValNat p n ! + n := by @@ -590,7 +587,6 @@ largest multiple of `p` below `n`, i.e. `(p * ⌊n / p⌋)!`. -/ nth_rw 2 [← div_add_mod n p] exact (padicValNat_factorial_mul_add (n / p) <| mod_lt n hp.out.pos).symm -set_option backward.isDefEq.respectTransparency false in /-- **Legendre's Theorem** The `p`-adic valuation of `n!` is the sum of the quotients `n / p ^ i`. This sum is expressed @@ -635,7 +631,6 @@ theorem padicValNat_factorial_le [hp : Fact p.Prime] (n : ℕ) : padicValNat p n variable {p} -set_option backward.isDefEq.respectTransparency false in /-- **Kummer's Theorem** The `p`-adic valuation of `n.choose k` is the number of carries when `k` and `n - k` are added @@ -646,7 +641,6 @@ theorem padicValNat_choose {n k b : ℕ} [hp : Fact p.Prime] (hkn : k ≤ n) (hn exact_mod_cast (padicValNat_eq_emultiplicity (p := p) <| (choose_ne_zero hkn)) ▸ Prime.emultiplicity_choose hp.out hkn hnb -set_option backward.isDefEq.respectTransparency false in /-- **Kummer's Theorem** The `p`-adic valuation of `(n + k).choose k` is the number of carries when `k` and `n` are added diff --git a/Mathlib/NumberTheory/Padics/PadicVal/Defs.lean b/Mathlib/NumberTheory/Padics/PadicVal/Defs.lean index bca1345f570efc..3847e2e193572b 100644 --- a/Mathlib/NumberTheory/Padics/PadicVal/Defs.lean +++ b/Mathlib/NumberTheory/Padics/PadicVal/Defs.lean @@ -50,7 +50,6 @@ theorem padicValNat_def [hp : Fact p.Prime] {n : ℕ} (hn : n ≠ 0) : padicValNat p n = multiplicity p n := padicValNat_def' hp.out.ne_one hn -set_option backward.isDefEq.respectTransparency false in /-- A simplification of `padicValNat` when one input is prime, by analogy with `padicValRat_def`. -/ theorem padicValNat_eq_emultiplicity [hp : Fact p.Prime] {n : ℕ} (hn : n ≠ 0) : @@ -86,7 +85,6 @@ theorem le_emultiplicity_iff_replicate_subperm_primeFactorsList {a b : ℕ} {n : (replicate_subperm_primeFactorsList_iff ha hb).trans pow_dvd_iff_le_emultiplicity |>.symm -set_option backward.isDefEq.respectTransparency false in theorem le_padicValNat_iff_replicate_subperm_primeFactorsList {a b : ℕ} {n : ℕ} (ha : a.Prime) (hb : b ≠ 0) : n ≤ padicValNat a b ↔ replicate n a <+~ b.primeFactorsList := by diff --git a/Mathlib/NumberTheory/RamificationInertia/Basic.lean b/Mathlib/NumberTheory/RamificationInertia/Basic.lean index 851a1f695b5e85..ed6c2f268870c6 100644 --- a/Mathlib/NumberTheory/RamificationInertia/Basic.lean +++ b/Mathlib/NumberTheory/RamificationInertia/Basic.lean @@ -619,7 +619,6 @@ noncomputable def powQuotSuccInclusion (i : ℕ) : map_add' _ _ := rfl map_smul' _ _ := rfl -set_option backward.isDefEq.respectTransparency false in theorem powQuotSuccInclusion_injective (i : ℕ) : Function.Injective (powQuotSuccInclusion p P i) := by rw [← LinearMap.ker_eq_bot, LinearMap.ker_eq_bot'] @@ -627,7 +626,6 @@ theorem powQuotSuccInclusion_injective (i : ℕ) : rw [Subtype.ext_iff] at hx0 ⊢ rwa [powQuotSuccInclusion_apply_coe] at hx0 -set_option backward.isDefEq.respectTransparency false in /-- `S ⧸ P` embeds into the quotient by `P^(i+1) ⧸ P^e` as a subspace of `P^i ⧸ P^e`. See `quotientToQuotientRangePowQuotSucc` for this as a linear map, and `quotientRangePowQuotSuccInclusionEquiv` for this as a linear equivalence. @@ -644,7 +642,6 @@ noncomputable def quotientToQuotientRangePowQuotSuccAux {i : ℕ} {a : S} (a_mem rw [powQuotSuccInclusion_apply_coe, Subtype.coe_mk, Submodule.coe_sub, Subtype.coe_mk, Subtype.coe_mk, map_mul, map_sub, mul_sub] -set_option backward.isDefEq.respectTransparency false in theorem quotientToQuotientRangePowQuotSuccAux_mk {i : ℕ} {a : S} (a_mem : a ∈ P ^ i) (x : S) : quotientToQuotientRangePowQuotSuccAux p P a_mem (Submodule.Quotient.mk x) = Submodule.Quotient.mk ⟨_, Ideal.mem_map_of_mem _ (Ideal.mul_mem_right x _ a_mem)⟩ := by @@ -653,7 +650,6 @@ theorem quotientToQuotientRangePowQuotSuccAux_mk {i : ℕ} {a : S} (a_mem : a section variable [hfp : NeZero (ramificationIdx (algebraMap R S) p P)] -set_option backward.isDefEq.respectTransparency false in /-- `S ⧸ P` embeds into the quotient by `P^(i+1) ⧸ P^e` as a subspace of `P^i ⧸ P^e`. -/ noncomputable def quotientToQuotientRangePowQuotSucc {i : ℕ} {a : S} (a_mem : a ∈ P ^ i) : @@ -674,13 +670,11 @@ noncomputable def quotientToQuotientRangePowQuotSucc Algebra.smul_def, Quotient.algebraMap_quotient_pow_ramificationIdx] ring -set_option backward.isDefEq.respectTransparency false in theorem quotientToQuotientRangePowQuotSucc_mk {i : ℕ} {a : S} (a_mem : a ∈ P ^ i) (x : S) : quotientToQuotientRangePowQuotSucc p P a_mem (Submodule.Quotient.mk x) = Submodule.Quotient.mk ⟨_, Ideal.mem_map_of_mem _ (Ideal.mul_mem_right x _ a_mem)⟩ := quotientToQuotientRangePowQuotSuccAux_mk p P a_mem x -set_option backward.isDefEq.respectTransparency false in theorem quotientToQuotientRangePowQuotSucc_injective [IsDedekindDomain S] [P.IsPrime] {i : ℕ} (hi : i < e) {a : S} (a_mem : a ∈ P ^ i) (a_notMem : a ∉ P ^ (i + 1)) : Function.Injective (quotientToQuotientRangePowQuotSucc p P a_mem) := fun x => @@ -700,7 +694,6 @@ theorem quotientToQuotientRangePowQuotSucc_injective [IsDedekindDomain S] [P.IsP ((Submodule.sub_mem_iff_right _ hz).mp (Pe_le_Pi1 h))).resolve_left a_notMem -set_option backward.isDefEq.respectTransparency false in theorem quotientToQuotientRangePowQuotSucc_surjective [IsDedekindDomain S] (hP0 : P ≠ ⊥) [hP : P.IsPrime] {i : ℕ} (hi : i < e) {a : S} (a_mem : a ∈ P ^ i) (a_notMem : a ∉ P ^ (i + 1)) : @@ -730,7 +723,6 @@ theorem quotientToQuotientRangePowQuotSucc_surjective [IsDedekindDomain S] have := (P ^ (i + 1)).zero_mem contradiction -set_option backward.isDefEq.respectTransparency false in /-- Quotienting `P^i / P^e` by its subspace `P^(i+1) ⧸ P^e` is `R ⧸ p`-linearly isomorphic to `S ⧸ P`. -/ noncomputable def quotientRangePowQuotSuccInclusionEquiv [IsDedekindDomain S] @@ -745,7 +737,6 @@ noncomputable def quotientRangePowQuotSuccInclusionEquiv [IsDedekindDomain S] · exact quotientToQuotientRangePowQuotSucc_injective p P hi a_mem a_notMem · exact quotientToQuotientRangePowQuotSucc_surjective p P hP hi a_mem a_notMem -set_option backward.isDefEq.respectTransparency false in /-- Since the inclusion `(P^(i + 1) / P^e) ⊂ (P^i / P^e)` has a kernel isomorphic to `P / S`, `[P^i / P^e : R / p] = [P^(i+1) / P^e : R / p] + [P / S : R / p]` -/ theorem rank_pow_quot_aux [IsDedekindDomain S] [p.IsMaximal] [P.IsPrime] (hP0 : P ≠ ⊥) diff --git a/Mathlib/Order/Birkhoff.lean b/Mathlib/Order/Birkhoff.lean index 072a11a521aded..1cf7a86da04a13 100644 --- a/Mathlib/Order/Birkhoff.lean +++ b/Mathlib/Order/Birkhoff.lean @@ -231,7 +231,6 @@ set_option backward.isDefEq.respectTransparency false in @[simp] lemma birkhoffSet_sup (a b : α) : birkhoffSet (a ⊔ b) = birkhoffSet a ∪ birkhoffSet b := by unfold OrderEmbedding.birkhoffSet; split <;> simp [eq_iff_true_of_subsingleton] -set_option backward.isDefEq.respectTransparency false in @[simp] lemma birkhoffSet_inf (a b : α) : birkhoffSet (a ⊓ b) = birkhoffSet a ∩ birkhoffSet b := by unfold OrderEmbedding.birkhoffSet; split <;> simp [eq_iff_true_of_subsingleton] diff --git a/Mathlib/Order/Height.lean b/Mathlib/Order/Height.lean index 445e5a93dd5c24..9d83a5f3ae56d9 100644 --- a/Mathlib/Order/Height.lean +++ b/Mathlib/Order/Height.lean @@ -52,7 +52,6 @@ theorem chainHeight_ne_top_of_finite (h : s.Finite) : s.chainHeight r ≠ ⊤ := LT.lt.ne_top <| lt_of_le_of_lt (chainHeight_le_encard s r) <| lt_top_iff_ne_top.mpr <| encard_ne_top_iff.mpr h -set_option backward.isDefEq.respectTransparency false in theorem exists_isChain_of_le_chainHeight {r} {s : Set α} (n : ℕ) (h : n ≤ s.chainHeight r) : ∃ t ⊆ s, t.encard = n ∧ IsChain r t := by by_cases h' : n = 0 @@ -145,7 +144,6 @@ section Rel variable {r : α → α → Prop} {r' : β → β → Prop} (s : Set α) -set_option backward.isDefEq.respectTransparency false in theorem chainHeight_eq_of_relEmbedding (e : r ↪r r') : (e '' s).chainHeight r' = s.chainHeight r := by refine eq_of_forall_natCast_le_iff fun n ↦ ⟨fun hn ↦ ?_, fun hn ↦ ?_⟩ diff --git a/Mathlib/Order/KrullDimension.lean b/Mathlib/Order/KrullDimension.lean index 2b5f7cf2a75d99..7db2e4a5bc2574 100644 --- a/Mathlib/Order/KrullDimension.lean +++ b/Mathlib/Order/KrullDimension.lean @@ -137,7 +137,6 @@ lemma coheight_le_iff {a : α} {n : ℕ∞} : coheight a ≤ n ↔ ∀ ⦃p : LTSeries α⦄, a ≤ p.head → p.length ≤ n := by rw [coheight_eq, iSup₂_le_iff] -set_option backward.isDefEq.respectTransparency false in lemma height_le {a : α} {n : ℕ∞} (h : ∀ (p : LTSeries α), p.last = a → p.length ≤ n) : height a ≤ n := by apply height_le_iff.mpr @@ -193,7 +192,6 @@ lemma coheight_le {a : α} {n : ℕ∞} (h : ∀ (p : LTSeries α), p.head = a coheight a ≤ n := coheight_le_iff'.mpr h -set_option backward.isDefEq.respectTransparency false in lemma length_le_height {p : LTSeries α} {x : α} (hlast : p.last ≤ x) : p.length ≤ height x := by by_cases hlen0 : p.length ≠ 0 @@ -242,7 +240,6 @@ The coheight of an element in a series is larger or equal to its reverse index i lemma rev_index_le_coheight (p : LTSeries α) (i : Fin (p.length + 1)) : i.rev ≤ coheight (p i) := by simpa using index_le_height (α := αᵒᵈ) p.reverse i.rev -set_option backward.isDefEq.respectTransparency false in /-- In a maximally long series, i.e one as long as the height of the last element, the height of each element is its index in the series. @@ -344,7 +341,6 @@ private lemma exists_eq_iSup_of_iSup_eq_coe {α : Type*} [Nonempty α] {f : α use x simpa [hx] using h -set_option backward.isDefEq.respectTransparency false in /-- There exists a series ending in an element for any length up to the element’s height. -/ lemma exists_series_of_le_height (a : α) {n : ℕ} (h : n ≤ height a) : ∃ p : LTSeries α, p.last = a ∧ p.length = n := by @@ -383,7 +379,6 @@ lemma exists_series_of_coheight_eq_coe (a : α) {n : ℕ} (h : coheight a = n) : ∃ p : LTSeries α, p.head = a ∧ p.length = n := exists_series_of_le_coheight a (le_of_eq h.symm) -set_option backward.isDefEq.respectTransparency false in /-- Another characterization of height, based on the supremum of the heights of elements below. -/ lemma height_eq_iSup_lt_height (x : α) : height x = ⨆ y < x, height y + 1 := by apply le_antisymm @@ -407,7 +402,6 @@ Another characterization of coheight, based on the supremum of the coheights of lemma coheight_eq_iSup_gt_coheight (x : α) : coheight x = ⨆ y > x, coheight y + 1 := height_eq_iSup_lt_height (α := αᵒᵈ) x -set_option backward.isDefEq.respectTransparency false in lemma height_le_coe_iff {x : α} {n : ℕ} : height x ≤ n ↔ ∀ y < x, height y < n := by conv_lhs => rw [height_eq_iSup_lt_height, iSup₂_le_iff] congr! 2 with y _ @@ -444,7 +438,6 @@ lemma coheight_eq_top_iff {x : α} : convert height_eq_top_iff (α := αᵒᵈ) (x := x) using 2 with n constructor <;> (intro ⟨p, hp, hl⟩; use p.reverse; constructor <;> simpa) -set_option backward.isDefEq.respectTransparency false in /-- The elements of height zero are the minimal elements. -/ @[simp] lemma height_eq_zero {x : α} : height x = 0 ↔ IsMin x := by simpa [isMin_iff_forall_not_lt] using height_le_coe_iff (x := x) (n := 0) @@ -479,7 +472,6 @@ lemma coheight_pos_of_lt_top {x : α} [OrderTop α] (h : x < ⊤) : 0 < coheight rw [coheight_pos] grind [not_isMax_iff] -set_option backward.isDefEq.respectTransparency false in lemma coe_lt_height_iff {x : α} {n : ℕ} (hfin : height x < ⊤) : n < height x ↔ ∃ y < x, height y = n where mp h := by @@ -499,7 +491,6 @@ lemma coe_lt_coheight_iff {x : α} {n : ℕ} (hfin : coheight x < ⊤) : n < coheight x ↔ ∃ y > x, coheight y = n := coe_lt_height_iff (α := αᵒᵈ) hfin -set_option backward.isDefEq.respectTransparency false in lemma height_eq_coe_add_one_iff {x : α} {n : ℕ} : height x = n + 1 ↔ height x < ⊤ ∧ (∃ y < x, height y = n) ∧ (∀ y < x, height y ≤ n) := by wlog hfin : height x < ⊤ @@ -517,7 +508,6 @@ lemma coheight_eq_coe_add_one_iff {x : α} {n : ℕ} : coheight x < ⊤ ∧ (∃ y > x, coheight y = n) ∧ (∀ y > x, coheight y ≤ n) := height_eq_coe_add_one_iff (α := αᵒᵈ) -set_option backward.isDefEq.respectTransparency false in lemma height_eq_coe_iff {x : α} {n : ℕ} : height x = n ↔ height x < ⊤ ∧ (n = 0 ∨ ∃ y < x, height y = n - 1) ∧ (∀ y < x, height y < n) := by @@ -539,7 +529,6 @@ lemma coheight_eq_coe_iff {x : α} {n : ℕ} : coheight x < ⊤ ∧ (n = 0 ∨ ∃ y > x, coheight y = n - 1) ∧ (∀ y > x, coheight y < n) := height_eq_coe_iff (α := αᵒᵈ) -set_option backward.isDefEq.respectTransparency false in /-- The elements of finite height `n` are the minimal elements among those of height `≥ n`. -/ lemma height_eq_coe_iff_minimal_le_height {a : α} {n : ℕ} : height a = n ↔ Minimal (fun y => n ≤ height y) a := by @@ -728,13 +717,11 @@ lemma le_krullDim_iff {n : ℕ} : n ≤ krullDim α ↔ ∃ l : LTSeries α, l.l · exact fun ⟨l, hl⟩ ↦ hl ▸ l.longestOf_is_longest · simpa [krullDim_eq_top] using SetRel.InfiniteDimensional.exists_relSeries_with_length n -set_option backward.isDefEq.respectTransparency false in /-- A definition of krullDim for nonempty `α` that avoids `WithBot` -/ lemma krullDim_eq_iSup_length [Nonempty α] : krullDim α = ⨆ (p : LTSeries α), (p.length : ℕ∞) := by simp [krullDim, WithBot.coe_iSup (OrderTop.bddAbove _), WithBot.coe_natCast] -set_option backward.isDefEq.respectTransparency false in lemma krullDim_lt_coe_iff {n : ℕ} : krullDim α < n ↔ ∀ l : LTSeries α, l.length < n := by rw [krullDim, ← WithBot.coe_natCast] rcases n with - | n @@ -767,7 +754,6 @@ lemma height_le_krullDim (a : α) : height a ≤ krullDim α := by lemma coheight_le_krullDim (a : α) : coheight a ≤ krullDim α := by simpa using height_le_krullDim (α := αᵒᵈ) a -set_option backward.isDefEq.respectTransparency false in @[simp] lemma _root_.LTSeries.height_last_longestOf [FiniteDimensionalOrder α] : height (LTSeries.longestOf α).last = krullDim α := by @@ -808,7 +794,6 @@ lemma krullDim_eq_iSup_coheight_of_nonempty [Nonempty α] : krullDim α = ↑(⨆ (a : α), coheight a) := by simpa using krullDim_eq_iSup_height_of_nonempty (α := αᵒᵈ) -set_option backward.isDefEq.respectTransparency false in /-- The Krull dimension is the supremum of the elements' height plus coheight. -/ @@ -956,7 +941,6 @@ proof_wanted coheight_of_linearOrder {α : Type*} [LinearOrder α] (a : α) : coheight a = (Set.Ioi a).encard -/ -set_option backward.isDefEq.respectTransparency false in @[simp] lemma height_nat (n : ℕ) : height n = n := by induction n using Nat.strongRecOn with | ind n ih => apply le_antisymm @@ -999,7 +983,6 @@ lemma coheight_int (n : ℤ) : coheight n = ⊤ := coheight_of_noMaxOrder .. lemma krullDim_int : krullDim ℤ = ⊤ := krullDim_of_noMaxOrder .. -set_option backward.isDefEq.respectTransparency false in @[simp] lemma height_coe_withBot (x : α) : height (x : WithBot α) = height x + 1 := by apply le_antisymm · apply height_le @@ -1097,7 +1080,6 @@ section orderHom variable {α β : Type*} [Preorder α] [PartialOrder β] variable {m : ℕ} (f : α →o β) (h : ∀ (x : β), Order.krullDim (f ⁻¹' {x}) ≤ m) -set_option backward.isDefEq.respectTransparency false in include h in lemma height_le_of_krullDim_preimage_le (x : α) : Order.height x ≤ (m + 1) * Order.height (f x) + m := by @@ -1135,7 +1117,6 @@ lemma coheight_le_of_krullDim_preimage_le (x : α) : apply height_le_of_krullDim_preimage_le (f := f.dual) exact fun x ↦ le_of_eq_of_le (krullDim_orderDual (α := f ⁻¹' {x})) (h x) -set_option backward.isDefEq.respectTransparency false in include f h in lemma krullDim_le_of_krullDim_preimage_le : Order.krullDim α ≤ (m + 1) * Order.krullDim β + m := by diff --git a/Mathlib/Order/PrimeSeparator.lean b/Mathlib/Order/PrimeSeparator.lean index bf7ca2b2f13d4b..e40fdfde9c1c76 100644 --- a/Mathlib/Order/PrimeSeparator.lean +++ b/Mathlib/Order/PrimeSeparator.lean @@ -45,7 +45,6 @@ lemma mem_ideal_sup_principal (a b : α) (J : Ideal α) : b ∈ J ⊔ principal ⟨fun ⟨j, ⟨jJ, _, ha', bja'⟩⟩ => ⟨j, jJ, le_trans bja' (sup_le_sup_left ha' j)⟩, fun ⟨j, hj, hbja⟩ => ⟨j, hj, a, le_refl a, hbja⟩⟩ -set_option backward.isDefEq.respectTransparency false in set_option linter.style.whitespace false in -- manual alignment is not recognised theorem prime_ideal_of_disjoint_filter_ideal (hFI : Disjoint (F : Set α) (I : Set α)) : ∃ J : Ideal α, (IsPrime J) ∧ I ≤ J ∧ Disjoint (F : Set α) J := by diff --git a/Mathlib/Order/SuccPred/Tree.lean b/Mathlib/Order/SuccPred/Tree.lean index dcf58343c78c01..cb6dccb7be2ab5 100644 --- a/Mathlib/Order/SuccPred/Tree.lean +++ b/Mathlib/Order/SuccPred/Tree.lean @@ -205,7 +205,6 @@ lemma RootedTree.mem_subtrees_disjoint_iff {t₁ t₂ : SubRootedTree t} simpa only [ht₂.le_iff_eq ht₁.1, ht₁.le_iff_eq ht₂.1, eq_comm, or_self] using le_total_of_directed oh.2 h₂ -set_option backward.isDefEq.respectTransparency false in lemma RootedTree.subtrees_disjoint : t.subtrees.PairwiseDisjoint ((↑) : _ → Set t) := by intro t₁ ht₁ t₂ ht₂ h rw [Function.onFun_apply, Set.disjoint_left] diff --git a/Mathlib/Probability/Process/Stopping.lean b/Mathlib/Probability/Process/Stopping.lean index c0e5ccfbf66b57..7f03e30d007b91 100644 --- a/Mathlib/Probability/Process/Stopping.lean +++ b/Mathlib/Probability/Process/Stopping.lean @@ -1078,7 +1078,6 @@ theorem integrable_stoppedValue_of_mem_finset (hτ : IsStoppingTime ℱ τ) variable (ι) -set_option backward.isDefEq.respectTransparency false in theorem integrable_stoppedValue [LocallyFiniteOrderBot ι] (hτ : IsStoppingTime ℱ τ) (hu : ∀ n, Integrable (u n) μ) {N : ι} (hbdd : ∀ ω, τ ω ≤ N) : Integrable (stoppedValue u τ) μ := by diff --git a/Mathlib/Probability/StrongLaw.lean b/Mathlib/Probability/StrongLaw.lean index 86066d7d853f34..9b38a0e29bef04 100644 --- a/Mathlib/Probability/StrongLaw.lean +++ b/Mathlib/Probability/StrongLaw.lean @@ -591,7 +591,6 @@ theorem strong_law_aux7 : end StrongLawNonneg -set_option backward.whnf.reducibleClassField false in set_option backward.isDefEq.respectTransparency false in /-- **Strong law of large numbers**, almost sure version: if `X n` is a sequence of independent identically distributed integrable real-valued random variables, then `∑ i ∈ range n, X i / n` diff --git a/Mathlib/RepresentationTheory/Character.lean b/Mathlib/RepresentationTheory/Character.lean index e227b7f52fa806..c17a088739c7db 100644 --- a/Mathlib/RepresentationTheory/Character.lean +++ b/Mathlib/RepresentationTheory/Character.lean @@ -92,7 +92,6 @@ theorem char_linHom (V W : FDRep k G) (g : G) : variable [Fintype G] [Invertible (Fintype.card G : k)] -set_option backward.isDefEq.respectTransparency false in theorem average_char_eq_finrank_invariants (V : FDRep k G) : ⅟(Fintype.card G : k) • ∑ g : G, V.character g = finrank k (invariants V.ρ) := by rw [← (isProj_averageMap V.ρ).trace] diff --git a/Mathlib/RepresentationTheory/Coinduced.lean b/Mathlib/RepresentationTheory/Coinduced.lean index ca6219adad0b43..8b2eb90c01be5e 100644 --- a/Mathlib/RepresentationTheory/Coinduced.lean +++ b/Mathlib/RepresentationTheory/Coinduced.lean @@ -87,7 +87,6 @@ variable {k G H : Type u} [CommRing k] [Monoid G] [Monoid H] (φ : G →* H) (A section Coind -set_option backward.isDefEq.respectTransparency false in /-- If `φ : G →* H` and `A : Rep k G` then `coind φ A` is the coinduction of `A` along `φ`, defined by letting `H` act on the `G`-equivariant functions `H → A` by `(h • f) h₁ := f (h₁ * h)`. diff --git a/Mathlib/RepresentationTheory/Coinvariants.lean b/Mathlib/RepresentationTheory/Coinvariants.lean index c233512fe991b0..77c25c5000d937 100644 --- a/Mathlib/RepresentationTheory/Coinvariants.lean +++ b/Mathlib/RepresentationTheory/Coinvariants.lean @@ -299,7 +299,6 @@ noncomputable section variable [Group G] (A : Rep k G) (S : Subgroup G) [S.Normal] -set_option backward.isDefEq.respectTransparency false in /-- Given a normal subgroup `S ≤ G`, a `G`-representation `A` restricts to a `G`-representation on the kernel of the quotient map to the `S`-coinvariants `A_S`. -/ abbrev toCoinvariantsKer : Rep k G := Rep.of (A.ρ.toCoinvariantsKer S) @@ -319,7 +318,6 @@ lemma toCoinvariantsMkQ_hom : the coinvariants of `ρ|_S`. -/ abbrev quotientToCoinvariants : Rep k (G ⧸ S) := ofQuotient (toCoinvariants A S) S -set_option backward.isDefEq.respectTransparency false in /-- Given a normal subgroup `S ≤ G`, a `G`-representation `A` induces a short exact sequence of `G`-representations `0 ⟶ Ker(mk) ⟶ A ⟶ A_S ⟶ 0` where `mk` is the quotient map to the `S`-coinvariants `A_S`. -/ diff --git a/Mathlib/RepresentationTheory/FiniteIndex.lean b/Mathlib/RepresentationTheory/FiniteIndex.lean index 7ed8b7c696d9e3..54c3f1956c7e40 100644 --- a/Mathlib/RepresentationTheory/FiniteIndex.lean +++ b/Mathlib/RepresentationTheory/FiniteIndex.lean @@ -99,7 +99,6 @@ lemma indToCoindAux_comm {A B : Rep k S} (f : A ⟶ B) (g₁ g₂ : G) (a : A) : · simp [S.1.smul_def, hom_comm_apply] · simp [indToCoindAux_of_not_rel (h := h)] -set_option backward.isDefEq.respectTransparency false in variable (A) in /-- Let `S ≤ G` be a subgroup and `A` a `k`-linear `S`-representation. This is the `k`-linear map `Ind_S^G(A) →ₗ[k] Coind_S^G(A)` sending `(⟦g ⊗ₜ[k] a⟧, sg) ↦ ρ(s)(a)`. -/ @@ -144,7 +143,6 @@ lemma coindToInd_of_support_subset_orbit (g : G) (f : coind S.subtype A) variable (A) -set_option backward.isDefEq.respectTransparency false in /-- Let `S ≤ G` be a finite index subgroup, `g₁, ..., gₙ` a set of right coset representatives of `S`, and `A` a `k`-linear `S`-representation. This is an isomorphism `Ind_S^G(A) ≅ Coind_S^G(A)`. The forward map sends `(⟦g ⊗ₜ[k] a⟧, sg) ↦ ρ(s)(a)`, and the inverse sends `f : G → A` to diff --git a/Mathlib/RepresentationTheory/Homological/GroupCohomology/Functoriality.lean b/Mathlib/RepresentationTheory/Homological/GroupCohomology/Functoriality.lean index 838e8d65175bb7..914d56e9e2df08 100644 --- a/Mathlib/RepresentationTheory/Homological/GroupCohomology/Functoriality.lean +++ b/Mathlib/RepresentationTheory/Homological/GroupCohomology/Functoriality.lean @@ -105,7 +105,6 @@ lemma cochainsMap_f_map_epi (hf : Function.Injective f) [Epi φ] (i : ℕ) : ((Rep.epi_iff_surjective φ).1 inferInstance).comp_left.comp <| LinearMap.funLeft_surjective_of_injective k A _ hf.comp_left -set_option backward.isDefEq.respectTransparency false in instance cochainsMap_id_f_map_epi {A B : Rep k G} (φ : A ⟶ B) [Epi φ] (i : ℕ) : Epi ((cochainsMap (MonoidHom.id G) φ).f i) := cochainsMap_f_map_epi (MonoidHom.id G) φ (fun _ _ h => h) i @@ -291,7 +290,6 @@ theorem mapShortComplexH1_id_comp {A B C : Rep k G} (φ : A ⟶ B) (ψ : B ⟶ C mapShortComplexH1 (MonoidHom.id G) (φ ≫ ψ) = mapShortComplexH1 (MonoidHom.id G) φ ≫ mapShortComplexH1 (MonoidHom.id G) ψ := rfl -set_option backward.isDefEq.respectTransparency false in /-- Given a group homomorphism `f : G →* H` and a representation morphism `φ : Res(f)(A) ⟶ B`, this is induced map `Z¹(H, A) ⟶ Z¹(G, B)`. -/ noncomputable abbrev mapCocycles₁ : @@ -454,7 +452,6 @@ theorem mapShortComplexH2_id_comp {A B C : Rep k G} (φ : A ⟶ B) (ψ : B ⟶ C mapShortComplexH2 (MonoidHom.id G) (φ ≫ ψ) = mapShortComplexH2 (MonoidHom.id G) φ ≫ mapShortComplexH2 (MonoidHom.id G) ψ := rfl -set_option backward.isDefEq.respectTransparency false in /-- Given a group homomorphism `f : G →* H` and a representation morphism `φ : Res(f)(A) ⟶ B`, this is induced map `Z²(H, A) ⟶ Z²(G, B)`. -/ noncomputable abbrev mapCocycles₂ : diff --git a/Mathlib/RepresentationTheory/Homological/GroupCohomology/LowDegree.lean b/Mathlib/RepresentationTheory/Homological/GroupCohomology/LowDegree.lean index 10402006cf4b9e..28e3cc9a91eada 100644 --- a/Mathlib/RepresentationTheory/Homological/GroupCohomology/LowDegree.lean +++ b/Mathlib/RepresentationTheory/Homological/GroupCohomology/LowDegree.lean @@ -112,7 +112,6 @@ theorem d₀₁_ker_eq_invariants : LinearMap.ker (d₀₁ A).hom = invariants A rw [d₀₁_hom_apply, isTrivial_apply, sub_self] rfl -set_option backward.isDefEq.respectTransparency false in @[reassoc (attr := simp), elementwise (attr := simp)] lemma subtype_comp_d₀₁ : ModuleCat.ofHom (A.ρ.invariants.subtype) ≫ d₀₁ A = 0 := by ext ⟨x, hx⟩ g @@ -757,7 +756,6 @@ def dArrowIso₀₁ : Arrow.mk ((inhomogeneousCochains A).d 0 1) ≅ Arrow.mk (d₀₁ A) := Arrow.isoMk (cochainsIso₀ A) (cochainsIso₁ A) (comp_d₀₁_eq A) -set_option backward.isDefEq.respectTransparency false in /-- The 0-cocycles of the complex of inhomogeneous cochains of `A` are isomorphic to `A.ρ.invariants`, which is a simpler type. -/ def cocyclesIso₀ : cocycles A 0 ≅ ModuleCat.of k A.ρ.invariants := @@ -799,7 +797,6 @@ def isoShortComplexH1 : (inhomogeneousCochains A).sc 1 ≅ shortComplexH1 A := isoMk (cochainsIso₀ A) (cochainsIso₁ A) (cochainsIso₂ A) (comp_d₀₁_eq A) (comp_d₁₂_eq A) -set_option backward.isDefEq.respectTransparency false in /-- The 1-cocycles of the complex of inhomogeneous cochains of `A` are isomorphic to `cocycles₁ A`, which is a simpler type. -/ def isoCocycles₁ : cocycles A 1 ≅ ModuleCat.of k (cocycles₁ A) := @@ -849,7 +846,6 @@ def isoShortComplexH2 : isoMk (cochainsIso₁ A) (cochainsIso₂ A) (cochainsIso₃ A) (comp_d₁₂_eq A) (comp_d₂₃_eq A) -set_option backward.isDefEq.respectTransparency false in /-- The 2-cocycles of the complex of inhomogeneous cochains of `A` are isomorphic to `cocycles₂ A`, which is a simpler type. -/ def isoCocycles₂ : cocycles A 2 ≅ ModuleCat.of k (cocycles₂ A) := @@ -897,7 +893,6 @@ section H0 defined as the 0th cohomology of the complex of inhomogeneous cochains of `A`. -/ abbrev H0 := groupCohomology A 0 -set_option backward.isDefEq.respectTransparency false in /-- The 0th group cohomology of `A`, defined as the 0th cohomology of the complex of inhomogeneous cochains, is isomorphic to the invariants of the representation on `A`. -/ def H0Iso : H0 A ≅ ModuleCat.of k A.ρ.invariants := @@ -945,7 +940,6 @@ section H1 defined as the 1st cohomology of the complex of inhomogeneous cochains of `A`. -/ abbrev H1 := groupCohomology A 1 -set_option backward.isDefEq.respectTransparency false in /-- The quotient map from the 1-cocycles of `A`, as a submodule of `G → A`, to `H¹(G, A)`. -/ def H1π : ModuleCat.of k (cocycles₁ A) ⟶ H1 A := (isoCocycles₁ A).inv ≫ π A 1 @@ -966,7 +960,6 @@ lemma H1π_eq_zero_iff (x : cocycles₁ A) : H1π A x = 0 ↔ ⇑x ∈ coboundar ((ModuleCat.mono_iff_injective <| _).1 inferInstance)] simp [LinearMap.range_codRestrict, coboundaries₁, shortComplexH1, cocycles₁] -set_option backward.isDefEq.respectTransparency false in lemma H1π_eq_iff (x y : cocycles₁ A) : H1π A x = H1π A y ↔ ⇑x - ⇑y ∈ coboundaries₁ A := by rw [← sub_eq_zero, ← map_sub, H1π_eq_zero_iff] @@ -1028,7 +1021,6 @@ section H2 defined as the 2nd cohomology of the complex of inhomogeneous cochains of `A`. -/ abbrev H2 := groupCohomology A 2 -set_option backward.isDefEq.respectTransparency false in /-- The quotient map from the 2-cocycles of `A`, as a submodule of `G × G → A`, to `H²(G, A)`. -/ def H2π : ModuleCat.of k (cocycles₂ A) ⟶ H2 A := (isoCocycles₂ A).inv ≫ π A 2 @@ -1049,7 +1041,6 @@ lemma H2π_eq_zero_iff (x : cocycles₂ A) : H2π A x = 0 ↔ ⇑x ∈ coboundar ((ModuleCat.mono_iff_injective <| _).1 inferInstance)] simp [LinearMap.range_codRestrict, coboundaries₂, shortComplexH2, cocycles₂] -set_option backward.isDefEq.respectTransparency false in lemma H2π_eq_iff (x y : cocycles₂ A) : H2π A x = H2π A y ↔ ⇑x - ⇑y ∈ coboundaries₂ A := by rw [← sub_eq_zero, ← map_sub, H2π_eq_zero_iff] diff --git a/Mathlib/RepresentationTheory/Homological/GroupHomology/FiniteCyclic.lean b/Mathlib/RepresentationTheory/Homological/GroupHomology/FiniteCyclic.lean index e5a15912394ddf..6b070566dfb9bb 100644 --- a/Mathlib/RepresentationTheory/Homological/GroupHomology/FiniteCyclic.lean +++ b/Mathlib/RepresentationTheory/Homological/GroupHomology/FiniteCyclic.lean @@ -90,7 +90,6 @@ noncomputable def groupHomologyIsoEven (by induction i generalizing h₀ with | zero => exact (NeZero.ne 0 rfl).elim | succ n _ => simp) hi -set_option backward.isDefEq.respectTransparency false in /-- Given a finite cyclic group `G` generated by `g` and `A : Rep k G`, this is the quotient map `Ker(N) ⟶ Ker(N)/Im(ρ(g) - Id(A)) ≅ Hᵢ(G, A)` for any nonzero even `i`. -/ noncomputable abbrev groupHomologyπEven @@ -107,7 +106,6 @@ lemma groupHomologyπEven_eq_zero_iff (hg : ∀ x, x ∈ Subgroup.zpowers g) simp [groupHomologyπEven, map_eq_zero_iff _ ((ModuleCat.mono_iff_injective _).1 inferInstance), ShortComplex.moduleCatToCycles, -LinearMap.mem_range, LinearMap.range_codRestrict] -set_option backward.isDefEq.respectTransparency false in lemma groupHomologyπEven_eq_iff (hg : ∀ x, x ∈ Subgroup.zpowers g) (i : ℕ) [NeZero i] (hi : Even i) (x y : LinearMap.ker A.ρ.norm) : groupHomologyπEven A g hg i hi x = groupHomologyπEven A g hg i hi y ↔ diff --git a/Mathlib/RepresentationTheory/Homological/GroupHomology/Functoriality.lean b/Mathlib/RepresentationTheory/Homological/GroupHomology/Functoriality.lean index f3e6c38770cb99..8c2bff9fb52fc0 100644 --- a/Mathlib/RepresentationTheory/Homological/GroupHomology/Functoriality.lean +++ b/Mathlib/RepresentationTheory/Homological/GroupHomology/Functoriality.lean @@ -327,7 +327,6 @@ theorem mapShortComplexH1_id_comp {A B C : Rep k G} (φ : A ⟶ B) (ψ : B ⟶ C mapShortComplexH1 (MonoidHom.id G) φ ≫ mapShortComplexH1 (MonoidHom.id G) ψ := mapShortComplexH1_comp (MonoidHom.id G) (MonoidHom.id G) _ _ -set_option backward.isDefEq.respectTransparency false in /-- Given a group homomorphism `f : G →* H` and a representation morphism `φ : A ⟶ Res(f)(B)`, this is the induced map `Z₁(G, A) ⟶ Z₁(H, B)`. -/ noncomputable abbrev mapCycles₁ : @@ -759,7 +758,6 @@ theorem mapShortComplexH2_id_comp {A B C : Rep k G} (φ : A ⟶ B) (ψ : B ⟶ C mapShortComplexH2 (MonoidHom.id G) φ ≫ mapShortComplexH2 (MonoidHom.id G) ψ := mapShortComplexH2_comp (MonoidHom.id G) (MonoidHom.id G) _ _ -set_option backward.isDefEq.respectTransparency false in /-- Given a group homomorphism `f : G →* H` and a representation morphism `φ : A ⟶ Res(f)(B)`, this is the induced map `Z₂(G, A) ⟶ Z₂(H, B)`. -/ noncomputable abbrev mapCycles₂ : diff --git a/Mathlib/RepresentationTheory/Homological/GroupHomology/LowDegree.lean b/Mathlib/RepresentationTheory/Homological/GroupHomology/LowDegree.lean index c6ec0d0514cad6..97603f7a271ecb 100644 --- a/Mathlib/RepresentationTheory/Homological/GroupHomology/LowDegree.lean +++ b/Mathlib/RepresentationTheory/Homological/GroupHomology/LowDegree.lean @@ -125,7 +125,6 @@ lemma d₁₀_comp_coinvariantsMk : d₁₀ A ≫ (coinvariantsMk k G).app A = 0 ext simp [d₁₀] -set_option backward.isDefEq.respectTransparency false in /-- The 0th differential in the complex of inhomogeneous chains of a `G`-representation `A` as a linear map into the `k`-submodule of `A` spanned by elements of the form `ρ(g)(x) - x, g ∈ G, x ∈ A`. -/ @@ -365,7 +364,6 @@ variable (A) in theorem cycles₁_eq_top_of_isTrivial [A.IsTrivial] : cycles₁ A = ⊤ := by rw [cycles₁, d₁₀_eq_zero_of_isTrivial, ModuleCat.hom_zero, LinearMap.ker_zero] -set_option backward.isDefEq.respectTransparency false in variable (A) in /-- The natural inclusion `Z₁(G, A) ⟶ C₁(G, A)` is an isomorphism when the representation on `A` is trivial. -/ @@ -757,7 +755,6 @@ def isoShortComplexH1 : (inhomogeneousChains A).sc 1 ≅ shortComplexH1 A := (inhomogeneousChains A).isoSc' 2 1 0 (by simp) (by simp) ≪≫ isoMk (chainsIso₂ A) (chainsIso₁ A) (chainsIso₀ A) (comp_d₂₁_eq A) (comp_d₁₀_eq A) -set_option backward.isDefEq.respectTransparency false in /-- The 1-cycles of the complex of inhomogeneous chains of `A` are isomorphic to `cycles₁ A`, which is a simpler type. -/ def isoCycles₁ : cycles A 1 ≅ ModuleCat.of k (cycles₁ A) := @@ -804,7 +801,6 @@ def isoShortComplexH2 : (inhomogeneousChains A).sc 2 ≅ shortComplexH2 A := (inhomogeneousChains A).isoSc' 3 2 1 (by simp) (by simp) ≪≫ isoMk (chainsIso₃ A) (chainsIso₂ A) (chainsIso₁ A) (comp_d₃₂_eq A) (comp_d₂₁_eq A) -set_option backward.isDefEq.respectTransparency false in /-- The 2-cycles of the complex of inhomogeneous chains of `A` are isomorphic to `cycles₂ A`, which is a simpler type. -/ def isoCycles₂ : cycles A 2 ≅ ModuleCat.of k (cycles₂ A) := @@ -919,7 +915,6 @@ section H1 defined as the 1st homology of the complex of inhomogeneous chains of `A`. -/ abbrev H1 := groupHomology A 1 -set_option backward.isDefEq.respectTransparency false in /-- The quotient map from the 1-cycles of `A`, as a submodule of `G →₀ A`, to `H₁(G, A)`. -/ def H1π : ModuleCat.of k (cycles₁ A) ⟶ H1 A := (isoCycles₁ A).inv ≫ π A 1 @@ -940,7 +935,6 @@ lemma H1π_eq_zero_iff (x : cycles₁ A) : H1π A x = 0 ↔ x.1 ∈ boundaries ((ModuleCat.mono_iff_injective <| _).1 inferInstance)] simp [LinearMap.range_codRestrict, boundaries₁, shortComplexH1, cycles₁] -set_option backward.isDefEq.respectTransparency false in lemma H1π_eq_iff (x y : cycles₁ A) : H1π A x = H1π A y ↔ x.1 - y.1 ∈ boundaries₁ A := by rw [← sub_eq_zero, ← map_sub, H1π_eq_zero_iff] @@ -1065,7 +1059,6 @@ section H2 defined as the 2nd homology of the complex of inhomogeneous chains of `A`. -/ abbrev H2 := groupHomology A 2 -set_option backward.isDefEq.respectTransparency false in /-- The quotient map from the 2-cycles of `A`, as a submodule of `G × G →₀ A`, to `H₂(G, A)`. -/ def H2π : ModuleCat.of k (cycles₂ A) ⟶ H2 A := (isoCycles₂ A).inv ≫ π A 2 @@ -1086,7 +1079,6 @@ lemma H2π_eq_zero_iff (x : cycles₂ A) : H2π A x = 0 ↔ x.1 ∈ boundaries ((ModuleCat.mono_iff_injective <| _).1 inferInstance)] simp [LinearMap.range_codRestrict, boundaries₂, shortComplexH2, cycles₂] -set_option backward.isDefEq.respectTransparency false in lemma H2π_eq_iff (x y : cycles₂ A) : H2π A x = H2π A y ↔ x.1 - y.1 ∈ boundaries₂ A := by rw [← sub_eq_zero, ← map_sub, H2π_eq_zero_iff] diff --git a/Mathlib/RepresentationTheory/Invariants.lean b/Mathlib/RepresentationTheory/Invariants.lean index e75be2ca285901..bdfdb506842568 100644 --- a/Mathlib/RepresentationTheory/Invariants.lean +++ b/Mathlib/RepresentationTheory/Invariants.lean @@ -204,12 +204,10 @@ open CategoryTheory variable {k G : Type u} [CommRing k] [Group G] (A : Rep k G) (S : Subgroup G) [S.Normal] -set_option backward.isDefEq.respectTransparency false in /-- Given a normal subgroup `S ≤ G`, a `G`-representation `ρ` restricts to a `G`-representation on the invariants of `ρ|_S`. -/ abbrev toInvariants : Rep k G := Rep.of <| A.ρ.toInvariants S -set_option backward.isDefEq.respectTransparency false in /-- Given a normal subgroup `S ≤ G`, a `G`-representation `ρ` induces a `G ⧸ S`-representation on the invariants of `ρ|_S`. -/ abbrev quotientToInvariants : Rep k (G ⧸ S) := Rep.of (A.ρ.quotientToInvariants S) diff --git a/Mathlib/RepresentationTheory/Maschke.lean b/Mathlib/RepresentationTheory/Maschke.lean index ea73fe903ab43a..f3598431481640 100644 --- a/Mathlib/RepresentationTheory/Maschke.lean +++ b/Mathlib/RepresentationTheory/Maschke.lean @@ -158,7 +158,6 @@ theorem exists_leftInverse_of_injective (f : V →ₗ[k[G]] W) (hf : LinearMap.k namespace Submodule -set_option backward.isDefEq.respectTransparency false in theorem exists_isCompl (p : Submodule k[G] V) : ∃ q : Submodule k[G] V, IsCompl p q := by rcases MonoidAlgebra.exists_leftInverse_of_injective p.subtype p.ker_subtype with ⟨f, hf⟩ exact ⟨LinearMap.ker f, LinearMap.isCompl_of_proj <| DFunLike.congr_fun hf⟩ diff --git a/Mathlib/RepresentationTheory/Rep.lean b/Mathlib/RepresentationTheory/Rep.lean index 78f543a5968250..536788b0bbc188 100644 --- a/Mathlib/RepresentationTheory/Rep.lean +++ b/Mathlib/RepresentationTheory/Rep.lean @@ -173,14 +173,12 @@ end variable (A : Rep k G) -set_option backward.isDefEq.respectTransparency false in /-- Given a `k`-linear `G`-representation `(V, ρ)`, this is the representation defined by restricting `ρ` to a `G`-invariant `k`-submodule of `V`. -/ abbrev subrepresentation (W : Submodule k A) (le_comap : ∀ g, W ≤ W.comap (A.ρ g)) : Rep k G := Rep.of (A.ρ.subrepresentation W le_comap) -set_option backward.isDefEq.respectTransparency false in /-- The natural inclusion of a subrepresentation into the ambient representation. -/ @[simps] def subtype (W : Submodule k A) (le_comap : ∀ g, W ≤ W.comap (A.ρ g)) : diff --git a/Mathlib/RingTheory/AdicCompletion/AsTensorProduct.lean b/Mathlib/RingTheory/AdicCompletion/AsTensorProduct.lean index 20cc334e60ff96..3f7cd2cb71edd9 100644 --- a/Mathlib/RingTheory/AdicCompletion/AsTensorProduct.lean +++ b/Mathlib/RingTheory/AdicCompletion/AsTensorProduct.lean @@ -232,14 +232,12 @@ variable (hf : Function.Surjective f) include hf -set_option backward.isDefEq.respectTransparency false in private lemma tens_exact : Function.Exact (lTensorKerIncl I M f) (lTensorf I M f) := lTensor_exact (AdicCompletion I R) (f.exact_subtype_ker_map) hf private lemma tens_surj : Function.Surjective (lTensorf I M f) := LinearMap.lTensor_surjective (AdicCompletion I R) hf -set_option backward.isDefEq.respectTransparency false in private lemma adic_exact [IsNoetherianRing R] [Finite ι] : Function.Exact (map I (LinearMap.ker f).subtype) (map I f) := map_exact (Submodule.injective_subtype _) (f.exact_subtype_ker_map) hf @@ -247,7 +245,6 @@ private lemma adic_exact [IsNoetherianRing R] [Finite ι] : private lemma adic_surj : Function.Surjective (map I f) := map_surjective I hf -set_option backward.isDefEq.respectTransparency false in private lemma ofTensorProduct_bijective_of_map_from_fin [Finite ι] [IsNoetherianRing R] : Function.Bijective (ofTensorProduct I M) := @@ -345,7 +342,6 @@ lemma tensor_map_id_left_injective_of_injective (hf : Function.Injective f) : end -set_option backward.isDefEq.respectTransparency false in /-- Adic completion of a Noetherian ring `R` is flat over `R`. -/ instance flat_of_isNoetherian [IsNoetherianRing R] : Module.Flat R (AdicCompletion I R) := Module.Flat.iff_lTensor_injective'.mpr fun J ↦ diff --git a/Mathlib/RingTheory/AdicCompletion/Basic.lean b/Mathlib/RingTheory/AdicCompletion/Basic.lean index 2cf93c82680364..5ce835a93b2eed 100644 --- a/Mathlib/RingTheory/AdicCompletion/Basic.lean +++ b/Mathlib/RingTheory/AdicCompletion/Basic.lean @@ -86,8 +86,7 @@ theorem IsHausdorff.of_map [CommRing S] [Module S M] {J : Ideal S} [Algebra R S] apply SModEq.of_toAddSubgroup_le (U := (I ^ n • ⊤ : Submodule R M)) (V := (J ^ n • ⊤ : Submodule S M)) · rw [← AddSubgroup.toAddSubmonoid_le] - simp only [Submodule.toAddSubgroup_toAddSubmonoid, Submodule.smul_toAddSubmonoid, - Submodule.top_toAddSubmonoid] + simp only [Submodule.smul_toAddSubmonoid, Submodule.top_toAddSubmonoid] rw [AddSubmonoid.smul_le] intro r hr m hm rw [← algebraMap_smul S r m] diff --git a/Mathlib/RingTheory/Artinian/Module.lean b/Mathlib/RingTheory/Artinian/Module.lean index 79f412474fb64e..948ee4aa82e9a8 100644 --- a/Mathlib/RingTheory/Artinian/Module.lean +++ b/Mathlib/RingTheory/Artinian/Module.lean @@ -247,7 +247,6 @@ instance isArtinian_of_quotient_of_artinian (N : Submodule R M) [IsArtinian R M] : IsArtinian R (M ⧸ N) := isArtinian_of_surjective M (Submodule.mkQ N) (Submodule.Quotient.mk_surjective N) -set_option backward.isDefEq.respectTransparency false in theorem isArtinian_of_range_eq_ker [IsArtinian R M] [IsArtinian R P] (f : M →ₗ[R] N) (g : N →ₗ[R] P) (h : LinearMap.range f = LinearMap.ker g) : IsArtinian R N := wellFounded_lt_exact_sequence (LinearMap.range f) @@ -259,7 +258,6 @@ theorem isArtinian_of_range_eq_ker [IsArtinian R M] [IsArtinian R P] (f : M → (by simp [Submodule.map_comap_eq, inf_comm, Submodule.range_liftQ]) (by simp [Submodule.comap_map_eq, h]) -set_option backward.isDefEq.respectTransparency false in theorem isArtinian_iff_submodule_quotient (S : Submodule R P) : IsArtinian R P ↔ IsArtinian R S ∧ IsArtinian R (P ⧸ S) := by refine ⟨fun h ↦ ⟨inferInstance, inferInstance⟩, fun ⟨_, _⟩ ↦ ?_⟩ @@ -269,7 +267,6 @@ theorem isArtinian_iff_submodule_quotient (S : Submodule R P) : instance isArtinian_prod [IsArtinian R M] [IsArtinian R P] : IsArtinian R (M × P) := isArtinian_of_range_eq_ker (LinearMap.inl R M P) (LinearMap.snd R M P) (LinearMap.range_inl R M P) -set_option backward.isDefEq.respectTransparency false in instance isArtinian_sup (M₁ M₂ : Submodule R P) [IsArtinian R M₁] [IsArtinian R M₂] : IsArtinian R ↥(M₁ ⊔ M₂) := by have := isArtinian_range (M₁.subtype.coprod M₂.subtype) @@ -436,7 +433,6 @@ instance isArtinian_of_fg_of_artinian' {R M} [Ring R] [AddCommGroup M] [Module R have ⟨_, _, h⟩ := Module.Finite.exists_fin' R M isArtinian_of_surjective _ _ h -set_option backward.isDefEq.respectTransparency false in theorem isArtinian_of_fg_of_artinian {R M} [Ring R] [AddCommGroup M] [Module R M] (N : Submodule R M) [IsArtinianRing R] (hN : N.FG) : IsArtinian R N := by rw [← Module.Finite.iff_fg] at hN; infer_instance diff --git a/Mathlib/RingTheory/Binomial.lean b/Mathlib/RingTheory/Binomial.lean index 681dd95cfd4c9d..84cabf002fbabf 100644 --- a/Mathlib/RingTheory/Binomial.lean +++ b/Mathlib/RingTheory/Binomial.lean @@ -274,7 +274,6 @@ instance Int.instBinomialRing : BinomialRing ℤ where attribute [local instance] IsAddTorsionFree.of_module_nnrat -set_option backward.isDefEq.respectTransparency false in noncomputable instance {R : Type*} [AddCommMonoid R] [Module ℚ≥0 R] [Pow R ℕ] : BinomialRing R where multichoose r n := (n.factorial : ℚ≥0)⁻¹ • Polynomial.smeval (ascPochhammer ℕ n) r factorial_nsmul_multichoose r n := by diff --git a/Mathlib/RingTheory/DedekindDomain/Factorization.lean b/Mathlib/RingTheory/DedekindDomain/Factorization.lean index e0eb2e55b9b92b..e357a0ae82c950 100644 --- a/Mathlib/RingTheory/DedekindDomain/Factorization.lean +++ b/Mathlib/RingTheory/DedekindDomain/Factorization.lean @@ -716,7 +716,6 @@ lemma divMod_zero_of_not_le {a b c : FractionalIdeal R⁰ K} (hac : ¬ a ≤ c) c.divMod b a = 0 := by simp [divMod, hac] -set_option backward.isDefEq.respectTransparency false in set_option maxHeartbeats 212000 in -- changed for new compiler /-- Let `I J I' J'` be nonzero fractional ideals in a Dedekind domain with `J ≤ I` and `J' ≤ I'`. diff --git a/Mathlib/RingTheory/DedekindDomain/IntegralClosure.lean b/Mathlib/RingTheory/DedekindDomain/IntegralClosure.lean index 595589750b39dc..21f66039595257 100644 --- a/Mathlib/RingTheory/DedekindDomain/IntegralClosure.lean +++ b/Mathlib/RingTheory/DedekindDomain/IntegralClosure.lean @@ -147,7 +147,6 @@ theorem FiniteDimensional.exists_is_basis_integral : variable [Algebra.IsSeparable K L] -set_option backward.isDefEq.respectTransparency false in /-- If `L` is a finite separable extension of `K = Frac(A)`, where `A` is integrally closed and Noetherian, the integral closure `C` of `A` in `L` is Noetherian over `A`. -/ diff --git a/Mathlib/RingTheory/DiscreteValuationRing/Basic.lean b/Mathlib/RingTheory/DiscreteValuationRing/Basic.lean index bce61407ddfadd..85b7b2cfbfd78e 100644 --- a/Mathlib/RingTheory/DiscreteValuationRing/Basic.lean +++ b/Mathlib/RingTheory/DiscreteValuationRing/Basic.lean @@ -420,7 +420,6 @@ theorem addVal_mul {a b : R} : theorem addVal_pow (a : R) (n : ℕ) : addVal R (a ^ n) = n • addVal R a := (addVal R).map_pow _ _ -set_option backward.isDefEq.respectTransparency false in nonrec theorem _root_.Irreducible.addVal_pow {ϖ : R} (h : Irreducible ϖ) (n : ℕ) : addVal R (ϖ ^ n) = n := by rw [addVal_pow, addVal_uniformizer h, nsmul_one] @@ -455,7 +454,6 @@ theorem addVal_le_iff_dvd {a b : R} : addVal R a ≤ addVal R b ↔ a ∣ b := b theorem addVal_add {a b : R} : min (addVal R a) (addVal R b) ≤ addVal R (a + b) := (addVal R).map_add _ _ -set_option backward.isDefEq.respectTransparency false in @[simp] lemma addVal_eq_zero_of_unit (u : Rˣ) : addVal R u = 0 := by diff --git a/Mathlib/RingTheory/Etale/Kaehler.lean b/Mathlib/RingTheory/Etale/Kaehler.lean index 1f2a3b5babc3a0..5bfae9bb8389c6 100644 --- a/Mathlib/RingTheory/Etale/Kaehler.lean +++ b/Mathlib/RingTheory/Etale/Kaehler.lean @@ -136,7 +136,6 @@ def tensorCotangentSpace ext a simp; rfl } -set_option backward.isDefEq.respectTransparency false in /-- (Implementation) If `J ≃ Q ⊗ₚ I` (e.g. when `T = Q ⊗ₚ S` and `P → Q` is flat), then `T ⊗ₛ I/I² ≃ J/J²`. This is the inverse. -/ diff --git a/Mathlib/RingTheory/Extension/Cotangent/Basic.lean b/Mathlib/RingTheory/Extension/Cotangent/Basic.lean index 85340c457f12f2..119eeae3fb65a1 100644 --- a/Mathlib/RingTheory/Extension/Cotangent/Basic.lean +++ b/Mathlib/RingTheory/Extension/Cotangent/Basic.lean @@ -300,7 +300,6 @@ lemma CotangentSpace.map_sub_map (f g : Hom P P') : Function.comp_apply, Hom.sub_tmul, LinearMap.map_smul_of_tower, cotangentComplex_mk, Hom.subToKer_apply_coe, map_sub, ← algebraMap_eq_smul_one, tmul_sub, smul_sub] -set_option backward.isDefEq.respectTransparency false in lemma Cotangent.map_sub_map (f g : Hom P P') : map f - map g = (f.sub g) ∘ₗ P.cotangentComplex := by ext x diff --git a/Mathlib/RingTheory/FiniteLength.lean b/Mathlib/RingTheory/FiniteLength.lean index 767d61b023d720..e978f7d821bbda 100644 --- a/Mathlib/RingTheory/FiniteLength.lean +++ b/Mathlib/RingTheory/FiniteLength.lean @@ -25,7 +25,6 @@ Finite length, Composition series variable (R : Type*) [Ring R] -set_option backward.isDefEq.respectTransparency false in /-- A module of finite length is either trivial or a simple extension of a module known to be of finite length. -/ inductive IsFiniteLength : ∀ (M : Type*) [AddCommGroup M] [Module R M], Prop @@ -37,7 +36,6 @@ attribute [nontriviality] IsFiniteLength.of_subsingleton variable {R} {M N : Type*} [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] -set_option backward.isDefEq.respectTransparency false in theorem LinearEquiv.isFiniteLength (e : M ≃ₗ[R] N) (h : IsFiniteLength R M) : IsFiniteLength R N := by induction h generalizing N with @@ -54,7 +52,6 @@ theorem exists_compositionSeries_of_isNoetherian_isArtinian [IsNoetherian R M] [ obtain ⟨f, f0, n, hn⟩ := exists_covBy_seq_of_wellFoundedLT_wellFoundedGT (Submodule R M) exact ⟨⟨n, fun i ↦ f i, fun i ↦ hn.2 i i.2⟩, f0.eq_bot, hn.1.eq_top⟩ -set_option backward.isDefEq.respectTransparency false in theorem isFiniteLength_of_exists_compositionSeries (h : ∃ s : CompositionSeries (Submodule R M), s.head = ⊥ ∧ s.last = ⊤) : IsFiniteLength R M := @@ -88,7 +85,6 @@ theorem isFiniteLength_iff_exists_compositionSeries : exists_compositionSeries_of_isNoetherian_isArtinian R M, isFiniteLength_of_exists_compositionSeries⟩ -set_option backward.isDefEq.respectTransparency false in open scoped IsSimpleOrder in theorem IsSemisimpleModule.finite_tfae [IsSemisimpleModule R M] : List.TFAE [Module.Finite R M, IsNoetherian R M, IsArtinian R M, IsFiniteLength R M, diff --git a/Mathlib/RingTheory/FiniteType.lean b/Mathlib/RingTheory/FiniteType.lean index 014e0e331069f2..c161e193e291c1 100644 --- a/Mathlib/RingTheory/FiniteType.lean +++ b/Mathlib/RingTheory/FiniteType.lean @@ -611,7 +611,6 @@ end MonoidAlgebra section Orzech -set_option backward.isDefEq.respectTransparency false in open Submodule Module Module.Finite in /-- Any commutative ring `R` satisfies the `OrzechProperty`, that is, for any finitely generated `R`-module `M`, any surjective homomorphism `f : N →ₗ[R] M` from a submodule `N` of `M` to `M` diff --git a/Mathlib/RingTheory/Finiteness/Descent.lean b/Mathlib/RingTheory/Finiteness/Descent.lean index cbf8fb9477e5af..9efb7cb4d21149 100644 --- a/Mathlib/RingTheory/Finiteness/Descent.lean +++ b/Mathlib/RingTheory/Finiteness/Descent.lean @@ -46,7 +46,6 @@ lemma Module.Finite.of_finite_tensorProduct_of_faithfullyFlat {M : Type*} [AddCo simp [f₀, -Pi.basisFun_equivFun, -Pi.basisFun_apply, h i] rwa [← Module.FaithfullyFlat.lTensor_surjective_iff_surjective _ T] -set_option backward.isDefEq.respectTransparency false in lemma Ideal.FG.of_FG_map_of_faithfullyFlat [Module.FaithfullyFlat R S] {I : Ideal R} (hI : (I.map (algebraMap R S)).FG) : I.FG := by change Submodule.FG I diff --git a/Mathlib/RingTheory/Finiteness/Finsupp.lean b/Mathlib/RingTheory/Finiteness/Finsupp.lean index f304004412c8b9..9dd33a3601aa36 100644 --- a/Mathlib/RingTheory/Finiteness/Finsupp.lean +++ b/Mathlib/RingTheory/Finiteness/Finsupp.lean @@ -127,7 +127,6 @@ lemma _root_.Module.Finite.of_exact {f : M →ₗ[R] N} {g : N →ₗ[R] P} exact Module.Finite.fg_top · simp [LinearMap.exact_iff.1 h_exact] -set_option backward.isDefEq.respectTransparency false in theorem _root_.Module.Finite.of_submodule_quotient (N : Submodule R M) [Module.Finite R N] [Module.Finite R (M ⧸ N)] : Module.Finite R M := .of_exact (LinearMap.exact_subtype_mkQ N) (Quotient.mk_surjective _) diff --git a/Mathlib/RingTheory/Finiteness/NilpotentKer.lean b/Mathlib/RingTheory/Finiteness/NilpotentKer.lean index 58a0e5190f9653..07d454680f56ca 100644 --- a/Mathlib/RingTheory/Finiteness/NilpotentKer.lean +++ b/Mathlib/RingTheory/Finiteness/NilpotentKer.lean @@ -17,7 +17,6 @@ public section open TensorProduct -set_option backward.isDefEq.respectTransparency false in /-- If `I` is a finitely generated nilpotent ideal of an `R`-algebra `S`, and `T = S / I` is `R`-finite, then `S` is also `R`-finite. -/ lemma Module.finite_of_surjective_of_ker_le_nilradical diff --git a/Mathlib/RingTheory/Flat/Equalizer.lean b/Mathlib/RingTheory/Flat/Equalizer.lean index 996ff4a5d5842e..c040345c47bf78 100644 --- a/Mathlib/RingTheory/Flat/Equalizer.lean +++ b/Mathlib/RingTheory/Flat/Equalizer.lean @@ -32,7 +32,6 @@ variable (M : Type*) [AddCommGroup M] [Module R M] [Module S M] [IsScalarTower R variable {N P : Type*} [AddCommGroup N] [AddCommGroup P] [Module R N] [Module R P] (f g : N →ₗ[R] P) -set_option backward.isDefEq.respectTransparency false in lemma Module.Flat.ker_lTensor_eq [Module.Flat R M] : LinearMap.ker (AlgebraTensorModule.lTensor S M f) = LinearMap.range (AlgebraTensorModule.lTensor S M (LinearMap.ker f).subtype) := by @@ -188,7 +187,6 @@ lemma LinearMap.lTensor_eqLocus_subtype_tensoreqLocusEquiv_symm [Module.Flat R M variable {M} -set_option backward.isDefEq.respectTransparency false in /-- Given a short exact sequence `0 → M → N → P → 0` with `P` flat, then any `A ⊗ M → A ⊗ N` is injective. @@ -228,7 +226,6 @@ to get `0 → A ⊗ K → A ⊗ M` exact. rw [Subsingleton.elim (SnakeLemma.δ' ..) 0] at this simpa using this -set_option backward.isDefEq.respectTransparency false in /-- Given surjection `f : N → P` with `P` flat, then `A ⊗ ker f ≃ ker (A ⊗ f)`. Also see `LinearMap.tensorKerEquiv` for the version with `A` flat instead. -/ def LinearMap.kerLTensorEquivOfSurjective [Module.Flat R P] @@ -321,7 +318,6 @@ lemma AlgHom.tensorEqualizerEquiv_apply [Module.Flat R T] #adaptation_note /-- After nightly-2026-02-23 this requires more heartbeats. -/ set_option maxHeartbeats 400000 in -- see note -set_option backward.isDefEq.respectTransparency false in variable (R A) in attribute [local instance] Algebra.TensorProduct.rightAlgebra in /-- diff --git a/Mathlib/RingTheory/Flat/EquationalCriterion.lean b/Mathlib/RingTheory/Flat/EquationalCriterion.lean index 3b905c713cb8b5..a1c7b3220051c1 100644 --- a/Mathlib/RingTheory/Flat/EquationalCriterion.lean +++ b/Mathlib/RingTheory/Flat/EquationalCriterion.lean @@ -266,7 +266,6 @@ theorem exists_factorization_of_comp_eq_zero_of_free [Flat R M] {K N : Type*} [A ⟨k, a ∘ₗ e.symm, y, by rwa [← comp_assoc, LinearEquiv.eq_comp_toLinearMap_symm], by rwa [comp_assoc]⟩ -set_option backward.isDefEq.respectTransparency false in /-- Every homomorphism from a finitely presented module to a flat module factors through a finite free module. -/ @[stacks 058E "only if"] diff --git a/Mathlib/RingTheory/Flat/FaithfullyFlat/Basic.lean b/Mathlib/RingTheory/Flat/FaithfullyFlat/Basic.lean index da05b7ff50c9df..47924ebfdad1b2 100644 --- a/Mathlib/RingTheory/Flat/FaithfullyFlat/Basic.lean +++ b/Mathlib/RingTheory/Flat/FaithfullyFlat/Basic.lean @@ -268,7 +268,6 @@ variable {N2 : Type*} [AddCommGroup N2] [Module R N2] variable {N3 : Type*} [AddCommGroup N3] [Module R N3] variable (l12 : N1 →ₗ[R] N2) (l23 : N2 →ₗ[R] N3) -set_option backward.isDefEq.respectTransparency false in /-- If `M` is faithfully flat, then exactness of `N₁ ⊗ M -> N₂ ⊗ M -> N₃ ⊗ M` implies that the composition `N₁ -> N₂ -> N₃` is `0`. @@ -317,7 +316,6 @@ lemma range_le_ker_of_exact_rTensor [fl : FaithfullyFlat R M] -- but `E ⊗ M = 0` implies `E = 0` because `M` is faithfully flat and this is a contradiction. exact not_subsingleton_iff_nontrivial.2 inferInstance <| fl.rTensor_reflects_triviality R M E -set_option backward.isDefEq.respectTransparency false in lemma rTensor_reflects_exact [fl : FaithfullyFlat R M] (ex : Function.Exact (l12.rTensor M) (l23.rTensor M)) : Function.Exact l12 l23 := LinearMap.exact_iff.2 <| by diff --git a/Mathlib/RingTheory/Flat/Tensor.lean b/Mathlib/RingTheory/Flat/Tensor.lean index eac4caf96827b6..d9f90cd20ed276 100644 --- a/Mathlib/RingTheory/Flat/Tensor.lean +++ b/Mathlib/RingTheory/Flat/Tensor.lean @@ -61,7 +61,6 @@ theorem iff_characterModule_baer : Flat R M ↔ Baer R (CharacterModule M) := by rw [equiv_iff (N := ULift.{u} M) ULift.moduleEquiv.symm, iff_characterModule_injective, ← Baer.iff_injective, Baer.congr (CharacterModule.congr ULift.moduleEquiv)] -set_option backward.isDefEq.respectTransparency false in /-- An `R`-module `M` is flat iff for all ideals `I` of `R`, the tensor product of the inclusion `I → R` and the identity `M → M` is injective. See `iff_rTensor_injective` to restrict to finitely generated ideals `I`. -/ @@ -75,7 +74,6 @@ theorem iff_lTensor_injective' : Flat R M ↔ ∀ (I : Ideal R), Function.Injective (lTensor M I.subtype) := by simpa [← comm_comp_rTensor_comp_comm_eq] using iff_rTensor_injective' -set_option backward.isDefEq.respectTransparency false in /-- A module `M` over a ring `R` is flat iff for all finitely generated ideals `I` of `R`, the tensor product of the inclusion `I → R` and the identity `M → M` is injective. See `iff_rTensor_injective'` to extend to all ideals `I`. -/ diff --git a/Mathlib/RingTheory/HopkinsLevitzki.lean b/Mathlib/RingTheory/HopkinsLevitzki.lean index e062cd04537961..4238581ff166c7 100644 --- a/Mathlib/RingTheory/HopkinsLevitzki.lean +++ b/Mathlib/RingTheory/HopkinsLevitzki.lean @@ -43,7 +43,6 @@ namespace IsSemiprimaryRing variable [IsSemiprimaryRing R] -set_option backward.isDefEq.respectTransparency false in @[elab_as_elim] protected theorem induction {P : ∀ (M : Type u) [AddCommGroup M] [Module R₀ M] [Module R M], Prop} (h0 : ∀ (M) [AddCommGroup M] [Module R₀ M] [Module R M] [IsScalarTower R₀ R M] @@ -78,7 +77,6 @@ section variable [IsScalarTower R₀ R R] [Module.Finite R₀ (R ⧸ Ring.jacobson R)] -set_option backward.isDefEq.respectTransparency false in private theorem finite_of_isNoetherian_or_isArtinian : IsNoetherian R M ∨ IsArtinian R M → Module.Finite R₀ M := by refine IsSemiprimaryRing.induction R₀ R M (P := fun M ↦ IsNoetherian R M ∨ IsArtinian R M → @@ -103,7 +101,6 @@ end variable {R M} -set_option backward.isDefEq.respectTransparency false in theorem isNoetherian_iff_isArtinian : IsNoetherian R M ↔ IsArtinian R M := IsSemiprimaryRing.induction R R M (P := fun M ↦ IsNoetherian R M ↔ IsArtinian R M) (fun M _ _ _ _ _ _ ↦ IsSemisimpleModule.finite_tfae.out 1 2) diff --git a/Mathlib/RingTheory/Ideal/AssociatedPrime/Finiteness.lean b/Mathlib/RingTheory/Ideal/AssociatedPrime/Finiteness.lean index feb5d9ade64495..75a03a417b0cc3 100644 --- a/Mathlib/RingTheory/Ideal/AssociatedPrime/Finiteness.lean +++ b/Mathlib/RingTheory/Ideal/AssociatedPrime/Finiteness.lean @@ -46,7 +46,6 @@ universe u v variable {A : Type u} [CommRing A] {M : Type v} [AddCommGroup M] [Module A M] -set_option backward.isDefEq.respectTransparency false in /-- A `Prop` asserting that two submodules `N₁, N₂` satisfy `N₁ ≤ N₂` and `N₂ / N₁` is isomorphic to `A / p` for some prime ideal `p` of `A`. -/ def Submodule.IsQuotientEquivQuotientPrime (N₁ N₂ : Submodule A M) := @@ -105,7 +104,6 @@ theorem IsNoetherianRing.exists_relSeries_isQuotientEquivQuotientPrime : have := Submodule.isQuotientEquivQuotientPrime_iff.mpr ⟨x, hp, rfl⟩ refine ⟨_, by simpa [hs₂], s.snoc _ (hs₂ ▸ this), by simpa, rfl⟩ -set_option backward.isDefEq.respectTransparency false in /-- If a property on finitely generated modules over a Noetherian ring satisfies that: - it holds for zero module (it's formalized as it holds for any module which is subsingleton), @@ -205,7 +203,6 @@ theorem Ideal.bot_lt_annihilator_of_disjoint_nonZeroDivisors {I : Ideal A} simpa only [smul_eq_mul, mul_comm x, SetLike.le_def, Submodule.mem_colon_singleton] using hP, fun h : x = 0 ↦ prime.ne_top <| by simp [h]⟩ -set_option backward.isDefEq.respectTransparency false in theorem Ideal.nonempty_inter_nonZeroDivisors_of_faithfulSMul {I : Ideal A} [FaithfulSMul A I] : ((I : Set A) ∩ nonZeroDivisors A).Nonempty := by by_contra! diff --git a/Mathlib/RingTheory/Ideal/Cotangent.lean b/Mathlib/RingTheory/Ideal/Cotangent.lean index 421592adb1beec..1ecdd7b9d8002f 100644 --- a/Mathlib/RingTheory/Ideal/Cotangent.lean +++ b/Mathlib/RingTheory/Ideal/Cotangent.lean @@ -37,19 +37,15 @@ universe u v w variable {R : Type u} {S : Type v} {S' : Type w} [CommRing R] [CommSemiring S] [Algebra S R] variable [CommSemiring S'] [Algebra S' R] [Algebra S S'] [IsScalarTower S S' R] (I : Ideal R) -set_option backward.isDefEq.respectTransparency false in /-- `I ⧸ I ^ 2` as a quotient of `I`. -/ def Cotangent : Type _ := I ⧸ (I • ⊤ : Submodule R I) deriving Inhabited, AddCommGroup, Module (R ⧸ I) -set_option backward.isDefEq.respectTransparency false in deriving instance Module S, IsScalarTower S S' for Cotangent I -set_option backward.isDefEq.respectTransparency false in variable [IsNoetherian R I] in deriving instance IsNoetherian R for Cotangent I -set_option backward.isDefEq.respectTransparency false in /-- The quotient map from `I` to `I ⧸ I ^ 2`. -/ @[simps! -isSimp apply] def toCotangent : I →ₗ[R] I.Cotangent := Submodule.mkQ _ @@ -69,10 +65,8 @@ theorem toCotangent_eq {x y : I} : I.toCotangent x = I.toCotangent y ↔ (x - y theorem toCotangent_eq_zero (x : I) : I.toCotangent x = 0 ↔ (x : R) ∈ I ^ 2 := I.mem_toCotangent_ker -set_option backward.isDefEq.respectTransparency false in theorem toCotangent_surjective : Function.Surjective I.toCotangent := Submodule.mkQ_surjective _ -set_option backward.isDefEq.respectTransparency false in theorem toCotangent_range : LinearMap.range I.toCotangent = ⊤ := Submodule.range_mkQ _ theorem cotangent_subsingleton_iff : Subsingleton I.Cotangent ↔ IsIdempotentElem I := by @@ -85,7 +79,6 @@ theorem cotangent_subsingleton_iff : Subsingleton I.Cotangent ↔ IsIdempotentEl Quotient.inductionOn₂' x y fun x y => I.toCotangent_eq.mpr <| ((pow_two I).trans e).symm ▸ I.sub_mem x.prop y.prop⟩ -set_option backward.isDefEq.respectTransparency false in /-- The inclusion map `I ⧸ I ^ 2` to `R ⧸ I ^ 2`. -/ def cotangentToQuotientSquare : I.Cotangent →ₗ[R] R ⧸ I ^ 2 := Submodule.mapQ (I • ⊤) (I ^ 2) I.subtype @@ -202,7 +195,6 @@ def quotCotangent : (R ⧸ I ^ 2) ⧸ I.cotangentIdeal ≃+* R ⧸ I := by refine (DoubleQuot.quotQuotEquivQuotSup _ _).trans ?_ exact Ideal.quotEquivOfEq (sup_eq_right.mpr <| Ideal.pow_le_self two_ne_zero) -set_option backward.isDefEq.respectTransparency false in /-- The map `I/I² → J/J²` if `I ≤ f⁻¹(J)`. -/ def mapCotangent (I₁ : Ideal A) (I₂ : Ideal B) (f : A →ₐ[R] B) (h : I₁ ≤ I₂.comap f) : I₁.Cotangent →ₗ[R] I₂.Cotangent := by @@ -252,7 +244,6 @@ lemma subsingleton_cotangentSpace_iff [IsNoetherianRing R] : Ideal.isIdempotentElem_iff_eq_bot_or_top_of_isLocalRing] simp [(maximalIdeal.isMaximal R).ne_top] -set_option backward.isDefEq.respectTransparency false in lemma CotangentSpace.map_eq_top_iff [IsNoetherianRing R] {M : Submodule R (maximalIdeal R)} : M.map (maximalIdeal R).toCotangent = ⊤ ↔ M = ⊤ := by refine ⟨fun H ↦ eq_top_iff.mpr ?_, by rintro rfl; simp [Ideal.toCotangent_range]⟩ diff --git a/Mathlib/RingTheory/Ideal/Height.lean b/Mathlib/RingTheory/Ideal/Height.lean index ca26456601451f..d9f8589a5254bf 100644 --- a/Mathlib/RingTheory/Ideal/Height.lean +++ b/Mathlib/RingTheory/Ideal/Height.lean @@ -360,7 +360,6 @@ lemma mem_minimalPrimes_of_primeHeight_eq_height {I J : Ideal R} [J.IsPrime] (e rw [← J.height_eq_primeHeight] at e' exact mem_minimalPrimes_of_height_eq e (e' ▸ le_refl _) -set_option backward.isDefEq.respectTransparency false in lemma exists_spanRank_le_and_le_height_of_le_height [IsNoetherianRing R] (I : Ideal R) (r : ℕ) (hr : r ≤ I.height) : ∃ J ≤ I, J.spanRank ≤ r ∧ r ≤ J.height := by induction r with diff --git a/Mathlib/RingTheory/Ideal/IsPrincipalPowQuotient.lean b/Mathlib/RingTheory/Ideal/IsPrincipalPowQuotient.lean index faf834ad9430c1..5441a0febc29a8 100644 --- a/Mathlib/RingTheory/Ideal/IsPrincipalPowQuotient.lean +++ b/Mathlib/RingTheory/Ideal/IsPrincipalPowQuotient.lean @@ -77,7 +77,6 @@ def quotEquivPowQuotPowSucc (h : I.IsPrincipal) (h' : I ≠ ⊥) (n : ℕ) : refine hx.imp ?_ simp [g, LinearMap.codRestrict, eq_comm, mul_comm] -set_option backward.isDefEq.respectTransparency false in /-- For a principal ideal `I`, `R ⧸ I ≃ I ^ n ⧸ I ^ (n + 1)`. Supplied as a plain equiv to bypass typeclass synthesis issues on complex `Module` goals. To convert into a form that uses the ideal of `R ⧸ I ^ (n + 1)`, compose with diff --git a/Mathlib/RingTheory/Ideal/KrullsHeightTheorem.lean b/Mathlib/RingTheory/Ideal/KrullsHeightTheorem.lean index b6fcc9fdff954e..f142f02c124a14 100644 --- a/Mathlib/RingTheory/Ideal/KrullsHeightTheorem.lean +++ b/Mathlib/RingTheory/Ideal/KrullsHeightTheorem.lean @@ -163,7 +163,6 @@ theorem Ideal.mem_minimalPrimes_span_of_mem_minimalPrimes_span_insert {q p : Ide ← comap_map_of_surjective f hf p] exact comap_mono hrp -set_option backward.isDefEq.respectTransparency false in open IsLocalRing in /-- **Krull's height theorem** (also known as **Krullscher Höhensatz**) : In a commutative Noetherian ring `R`, any prime ideal that is minimal over an ideal generated @@ -242,7 +241,6 @@ lemma Ideal.height_le_spanRank_toENat (I : Ideal R) (hI : I ≠ ⊤) : convert (I.height_le_spanRank_toENat_of_mem_minimal_primes J hJ) exact Eq.symm (@height_eq_primeHeight _ _ J hJ.1.1) -set_option backward.isDefEq.respectTransparency false in lemma Ideal.height_le_spanFinrank (I : Ideal R) (hI : I ≠ ⊤) : I.height ≤ I.spanFinrank := by have : I.spanFinrank = I.spanRank.toENat := by @@ -312,7 +310,6 @@ lemma Ideal.exists_finset_card_eq_height_of_isNoetherianRing (p : Ideal R) [p.Is simpa [Submodule.fg_iff_spanRank_eq_spanFinrank] using (IsNoetherian.noetherian I) · exact I.height_le_spanRank_toENat_of_mem_minimal_primes _ hI -set_option backward.isDefEq.respectTransparency false in /-- If `I ≤ p` and `p` is prime, the height of `p` is bounded by the height of `p ⧸ I R` plus the span rank of `I`. -/ lemma Ideal.height_le_height_add_spanFinrank_of_le {I p : Ideal R} [p.IsPrime] (hrp : I ≤ p) : @@ -343,7 +340,6 @@ lemma Ideal.height_le_height_add_spanFinrank_of_le {I p : Ideal R} [p.IsPrime] ( convert hps simp [Ideal.map_span, ← himgo] -set_option backward.isDefEq.respectTransparency false in lemma height_le_ringKrullDim_quotient_add_spanFinrank {p I : Ideal R} [p.IsPrime] (h : I ≤ p) : p.height ≤ ringKrullDim (R ⧸ I) + I.spanFinrank := by trans (p.map (Ideal.Quotient.mk I)).height + I.spanFinrank @@ -371,7 +367,6 @@ lemma Ideal.height_le_height_add_encard_of_subset (s : Set R) {p : Ideal R} [p.I · gcongr exact Submodule.spanFinrank_span_le_encard _ -set_option backward.isDefEq.respectTransparency false in lemma Ideal.height_le_ringKrullDim_quotient_add_encard {p : Ideal R} [p.IsPrime] (s : Set R) (hs : s ⊆ p) : p.height ≤ ringKrullDim (R ⧸ span s) + s.encard := by refine le_trans (height_le_ringKrullDim_quotient_add_spanFinrank (I := .span s) ?_) ?_ @@ -388,7 +383,6 @@ lemma Ideal.height_le_ringKrullDim_quotient_add_one {r : R} {p : Ideal R} [p.IsP convert Ideal.height_le_ringKrullDim_quotient_add_encard {r} (by simpa) simp -set_option backward.isDefEq.respectTransparency false in lemma ringKrullDim_le_ringKrullDim_quotient_add_encard (s : Set R) (hs : s ⊆ Ring.jacobson R) : ringKrullDim R ≤ ringKrullDim (R ⧸ Ideal.span s) + s.encard := by refine le_trans (ringKrullDim_le_ringKrullDim_quotient_add_spanFinrank (Ideal.span s) ?_) ?_ @@ -405,7 +399,6 @@ section Algebra variable {S : Type*} [CommRing S] [Algebra R S] -set_option backward.isDefEq.respectTransparency false in /-- If `P` lies over `p`, the height of `P` is bounded by the height of `p` plus the height of the image of `P` in `S ⧸ p S`. @@ -444,7 +437,6 @@ lemma Ideal.height_le_height_add_of_liesOver [IsNoetherianRing S] (p : Ideal R) convert hP' simp [Ideal.map_span, ← himgo] -set_option backward.isDefEq.respectTransparency false in /-- If `S` satisfies going-down as an `R`-algebra and `P` lies over `p`, the height of `P` is equal to the height of `p` plus the height of the image of `P` in `S ⧸ p S` diff --git a/Mathlib/RingTheory/Ideal/Norm/AbsNorm.lean b/Mathlib/RingTheory/Ideal/Norm/AbsNorm.lean index 815819eb779744..b972242031ac5c 100644 --- a/Mathlib/RingTheory/Ideal/Norm/AbsNorm.lean +++ b/Mathlib/RingTheory/Ideal/Norm/AbsNorm.lean @@ -269,7 +269,6 @@ theorem span_singleton_absNorm {I : Ideal S} (hI : (Ideal.absNorm I).Prime) : variable [Module.Finite ℤ S] -set_option backward.isDefEq.respectTransparency false in /-- Let `e : S ≃ I` be an additive isomorphism (therefore a `ℤ`-linear equiv). Then an alternative way to compute the norm of `I` is given by taking the determinant of `e`. See `natAbs_det_basis_change` for a more familiar formulation of this result. -/ @@ -293,7 +292,6 @@ theorem natAbs_det_basis_change {ι : Type*} [Fintype ι] [DecidableEq ι] (b : (I : Ideal S) (bI : Basis ι ℤ I) : (b.det ((↑) ∘ bI)).natAbs = Ideal.absNorm I := Submodule.natAbs_det_basis_change b (I.restrictScalars ℤ) bI -set_option backward.isDefEq.respectTransparency false in @[simp] theorem absNorm_span_singleton (r : S) : absNorm (span ({r} : Set S)) = (Algebra.norm ℤ r).natAbs := by diff --git a/Mathlib/RingTheory/Ideal/Quotient/ChineseRemainder.lean b/Mathlib/RingTheory/Ideal/Quotient/ChineseRemainder.lean index 5d67cfbaef54fa..d0647fb45356b0 100644 --- a/Mathlib/RingTheory/Ideal/Quotient/ChineseRemainder.lean +++ b/Mathlib/RingTheory/Ideal/Quotient/ChineseRemainder.lean @@ -42,7 +42,6 @@ theorem pi_tensorProductMk_quotient_surjective : classical rw [pi_mkQ_rTensor] at this simpa using this -set_option backward.isDefEq.respectTransparency false in /-- A form of Chinese remainder theorem for modules, part II: if ideals `Iᵢ` of `R` are pairwise coprime, then for any `R`-module `M`, the kernel of `M → Πᵢ (R ⧸ Iᵢ) ⊗[R] M` equals `(⋂ᵢ Iᵢ) • M`. -/ diff --git a/Mathlib/RingTheory/Ideal/Quotient/Index.lean b/Mathlib/RingTheory/Ideal/Quotient/Index.lean index 35005712b1b575..ad8ffac0b28bd3 100644 --- a/Mathlib/RingTheory/Ideal/Quotient/Index.lean +++ b/Mathlib/RingTheory/Ideal/Quotient/Index.lean @@ -33,7 +33,6 @@ public section variable {R M : Type*} [CommRing R] [AddCommGroup M] [Module R M] variable (I : Ideal R) {N : Submodule R M} -set_option backward.isDefEq.respectTransparency false in open TensorProduct in /-- Let `N` be a finite index f.g. `R`-submodule, and `I` be a finite index ideal. Then `I • N` also has finite index. -/ @@ -56,7 +55,6 @@ lemma Submodule.finite_quotient_smul [Finite (R ⧸ I)] [Finite (M ⧸ N)] (hN : have : Finite ((R ⧸ I) ⊗[R] N) := Module.finite_of_finite (R ⧸ I) exact Nat.card_pos.ne' -set_option backward.isDefEq.respectTransparency false in -- We have `hs` and `N` instead of using `span R s` in the goal to make it easier to use. -- Usually we would like to bound the index of some abstract `I • N`, and we may construct `s` while -- applying this lemma instead of having to provide it beforehand. diff --git a/Mathlib/RingTheory/Ideal/Quotient/Operations.lean b/Mathlib/RingTheory/Ideal/Quotient/Operations.lean index ccc148c9c90886..6e50892857b4e1 100644 --- a/Mathlib/RingTheory/Ideal/Quotient/Operations.lean +++ b/Mathlib/RingTheory/Ideal/Quotient/Operations.lean @@ -1174,7 +1174,6 @@ def powQuotPowSuccLinearEquivMapMkPowSuccPow : refine ⟨Submodule.Quotient.mk ⟨y, hy⟩, ?_⟩ simp -set_option backward.isDefEq.respectTransparency false in /-- `I ^ n ⧸ I ^ (n + 1)` can be viewed as a quotient module and as ideal of `R ⧸ I ^ (n + 1)`. This definition gives the equivalence between the two, instead of the `R`-linear equivalence, to bypass typeclass synthesis issues on complex `Module` goals. -/ diff --git a/Mathlib/RingTheory/Jacobson/Radical.lean b/Mathlib/RingTheory/Jacobson/Radical.lean index a020ba3cbd1b3e..872b79eb91f821 100644 --- a/Mathlib/RingTheory/Jacobson/Radical.lean +++ b/Mathlib/RingTheory/Jacobson/Radical.lean @@ -193,7 +193,6 @@ theorem jacobson_smul_lt_top [Nontrivial M] [IsCoatomic (Submodule R M)] (N : Su ((smul_mono_right _ le_top).trans <| Ring.jacobson_smul_top_le R M).trans_lt (Module.jacobson_lt_top R M) -set_option backward.isDefEq.respectTransparency false in theorem FG.jacobson_smul_lt {N : Submodule R M} (ne_bot : N ≠ ⊥) (fg : N.FG) : Ring.jacobson R • N < N := by rw [← Module.Finite.iff_fg] at fg diff --git a/Mathlib/RingTheory/Jacobson/Semiprimary.lean b/Mathlib/RingTheory/Jacobson/Semiprimary.lean index 90cc51212e5b51..bd19d851e082c6 100644 --- a/Mathlib/RingTheory/Jacobson/Semiprimary.lean +++ b/Mathlib/RingTheory/Jacobson/Semiprimary.lean @@ -26,7 +26,6 @@ variable {τ₁₂ : R →+* R₂} [RingHomSurjective τ₁₂] theorem IsSimpleModule.jacobson_eq_bot [IsSimpleModule R M] : Module.jacobson R M = ⊥ := le_bot_iff.mp <| sInf_le isCoatom_bot -set_option backward.isDefEq.respectTransparency false in theorem IsSemisimpleModule.jacobson_eq_bot [IsSemisimpleModule R M] : Module.jacobson R M = ⊥ := have ⟨s, e, simple⟩ := isSemisimpleModule_iff_exists_linearEquiv_dfinsupp.mp ‹_› diff --git a/Mathlib/RingTheory/Kaehler/Basic.lean b/Mathlib/RingTheory/Kaehler/Basic.lean index 7c606a1c272bbe..2838a8a3aab55a 100644 --- a/Mathlib/RingTheory/Kaehler/Basic.lean +++ b/Mathlib/RingTheory/Kaehler/Basic.lean @@ -157,20 +157,17 @@ deriving AddCommGroup, Module (S ⊗[R] S), IsScalarTower S (S ⊗[R] S), Inhabi @[inherit_doc KaehlerDifferential] notation "Ω[" S "⁄" R "]" => KaehlerDifferential R S -set_option backward.isDefEq.respectTransparency false in instance KaehlerDifferential.module' {R' : Type*} [CommRing R'] [Algebra R' S] [SMulCommClass R R' S] : Module R' Ω[S⁄R] := Submodule.Quotient.module' _ -set_option backward.isDefEq.respectTransparency false in instance KaehlerDifferential.isScalarTower_of_tower {R₁ R₂ : Type*} [CommRing R₁] [CommRing R₂] [Algebra R₁ S] [Algebra R₂ S] [SMul R₁ R₂] [SMulCommClass R R₁ S] [SMulCommClass R R₂ S] [IsScalarTower R₁ R₂ S] : IsScalarTower R₁ R₂ Ω[S⁄R] := Submodule.Quotient.isScalarTower _ _ -set_option backward.isDefEq.respectTransparency false in instance KaehlerDifferential.isScalarTower' : IsScalarTower R (S ⊗[R] S) Ω[S⁄R] := Submodule.Quotient.isScalarTower _ _ @@ -250,7 +247,6 @@ lemma KaehlerDifferential.subsingleton_of_surjective (h : Function.Surjective (a variable {R S} -set_option backward.isDefEq.respectTransparency false in /-- The linear map from `Ω[S⁄R]`, associated with a derivation. -/ def Derivation.liftKaehlerDifferential (D : Derivation R S M) : Ω[S⁄R] →ₗ[S] M := by refine LinearMap.comp ((((KaehlerDifferential.ideal R S) • @@ -775,7 +771,6 @@ def KaehlerDifferential.kerToTensor : algebraMap_eq_smul_one, RingHom.mem_ker.mp x.prop, TensorProduct.zero_tmul, add_zero, RingHom.id_apply] -set_option backward.isDefEq.respectTransparency false in /-- The map `I/I² → B ⊗[A] Ω[A⁄R]` where `I = ker(A → B)`. -/ noncomputable def KaehlerDifferential.kerCotangentToTensor : diff --git a/Mathlib/RingTheory/KrullDimension/NonZeroDivisors.lean b/Mathlib/RingTheory/KrullDimension/NonZeroDivisors.lean index d4606de8045e74..eba090b661274e 100644 --- a/Mathlib/RingTheory/KrullDimension/NonZeroDivisors.lean +++ b/Mathlib/RingTheory/KrullDimension/NonZeroDivisors.lean @@ -33,7 +33,6 @@ lemma ringKrullDim_quotient (I : Ideal R) : ringKrullDim (R ⧸ I) = Order.krullDim (PrimeSpectrum.zeroLocus (R := R) I) := by rw [ringKrullDim, Order.krullDim_eq_of_orderIso I.primeSpectrumQuotientOrderIsoZeroLocus] -set_option backward.isDefEq.respectTransparency false in lemma ringKrullDim_quotient_succ_le_of_nonZeroDivisor {r : R} (hr : r ∈ R⁰) : ringKrullDim (R ⧸ Ideal.span {r}) + 1 ≤ ringKrullDim R := by diff --git a/Mathlib/RingTheory/KrullDimension/PID.lean b/Mathlib/RingTheory/KrullDimension/PID.lean index 3dcb5aa01665bb..f27f06f6ac2f49 100644 --- a/Mathlib/RingTheory/KrullDimension/PID.lean +++ b/Mathlib/RingTheory/KrullDimension/PID.lean @@ -43,7 +43,6 @@ theorem IsPrincipalIdealRing.ringKrullDim_eq_one (R : Type*) [CommRing R] [IsDom rw [← Nat.cast_zero, ← Ring.krullDimLE_iff] at h'' exact Ring.KrullDimLE.isField_of_isDomain -set_option backward.isDefEq.respectTransparency false in /-- In a PID that is not a field, every maximal ideal has height one. -/ lemma IsPrincipalIdealRing.height_eq_one_of_isMaximal {R : Type*} [CommRing R] [IsDomain R] [IsPrincipalIdealRing R] (m : Ideal R) [m.IsMaximal] (h : ¬ IsField R) : diff --git a/Mathlib/RingTheory/Length.lean b/Mathlib/RingTheory/Length.lean index de8d7e875d7712..60b2ac3eaec844 100644 --- a/Mathlib/RingTheory/Length.lean +++ b/Mathlib/RingTheory/Length.lean @@ -65,7 +65,6 @@ lemma Module.length_pos_iff : 0 < Module.length R M ↔ Nontrivial M := by lemma Module.length_pos [Nontrivial M] : 0 < Module.length R M := Module.length_pos_iff.mpr ‹_› -set_option backward.isDefEq.respectTransparency false in lemma Module.length_compositionSeries (s : CompositionSeries (Submodule R M)) (h₁ : s.head = ⊥) (h₂ : s.last = ⊤) : s.length = Module.length R M := by have H := isFiniteLength_of_exists_compositionSeries ⟨s, h₁, h₂⟩ @@ -108,7 +107,6 @@ lemma Module.length_ne_top [IsArtinian R M] [IsNoetherian R M] : Module.length R rw [length_ne_top_iff, isFiniteLength_iff_isNoetherian_isArtinian] exact ⟨‹_›, ‹_›⟩ -set_option backward.isDefEq.respectTransparency false in lemma Module.length_submodule {N : Submodule R M} : Module.length R N = Order.height N := by apply WithBot.coe_injective @@ -126,17 +124,14 @@ lemma LinearEquiv.length_eq {N : Type*} [AddCommGroup N] [Module R N] (e : M ≃ rw [Module.coe_length, Module.coe_length, Order.krullDim_eq_of_orderIso (Submodule.orderIsoMapComap e)] -set_option backward.isDefEq.respectTransparency false in lemma Module.length_bot : Module.length R (⊥ : Submodule R M) = 0 := Module.length_eq_zero -set_option backward.isDefEq.respectTransparency false in @[simp] lemma Module.length_top : Module.length R (⊤ : Submodule R M) = Module.length R M := by rw [Module.length_submodule, Module.length_eq_height] -set_option backward.isDefEq.respectTransparency false in lemma Submodule.height_lt_top [IsArtinian R M] [IsNoetherian R M] (N : Submodule R M) : Order.height N < ⊤ := by simpa only [← Module.length_submodule] using Module.length_ne_top.lt_top @@ -145,7 +140,6 @@ lemma Submodule.height_strictMono [IsArtinian R M] [IsNoetherian R M] : StrictMono (Order.height : Submodule R M → ℕ∞) := fun N _ h ↦ Order.height_strictMono h N.height_lt_top -set_option backward.isDefEq.respectTransparency false in lemma Submodule.length_lt [IsArtinian R M] [IsNoetherian R M] {N : Submodule R M} (h : N ≠ ⊤) : Module.length R N < Module.length R M := by simpa [← Module.length_top (M := M), Module.length_submodule] using height_strictMono h.lt_top @@ -189,7 +183,6 @@ lemma Module.length_le_of_injective : Module.length R N ≤ Module.length R M := (Submodule.mkQ_surjective _) (LinearMap.exact_map_mkQ_range f)] exact le_self_add -set_option backward.isDefEq.respectTransparency false in include hg in lemma Module.length_le_of_surjective : Module.length R P ≤ Module.length R M := by rw [Module.length_eq_add_of_exact (LinearMap.ker g).subtype g (Submodule.subtype_injective _) hg @@ -235,7 +228,6 @@ lemma Module.length_finsupp {ι : Type*} : rw [this] exact ENat.self_le_mul_right _ length_pos.ne' -set_option backward.isDefEq.respectTransparency false in @[simp] lemma Module.length_pi {ι : Type*} : Module.length R (ι → M) = ENat.card ι * Module.length R M := by diff --git a/Mathlib/RingTheory/LinearDisjoint.lean b/Mathlib/RingTheory/LinearDisjoint.lean index 7fcae2dc22e407..34fe3f89371b5f 100644 --- a/Mathlib/RingTheory/LinearDisjoint.lean +++ b/Mathlib/RingTheory/LinearDisjoint.lean @@ -884,7 +884,6 @@ variable [Field R] [Ring S] [Algebra R S] variable {A B : Subalgebra R S} -set_option backward.isDefEq.respectTransparency false in theorem inf_eq_bot_of_commute (H : A.LinearDisjoint B) (hc : ∀ (a b : ↥(A ⊓ B)), Commute a.1 b.1) : A ⊓ B = ⊥ := eq_bot_of_rank_le_one (Submodule.LinearDisjoint.rank_inf_le_one_of_commute_of_flat_left H hc) diff --git a/Mathlib/RingTheory/LocalRing/Module.lean b/Mathlib/RingTheory/LocalRing/Module.lean index 323dbfad1e8dc0..bda4590c370ae6 100644 --- a/Mathlib/RingTheory/LocalRing/Module.lean +++ b/Mathlib/RingTheory/LocalRing/Module.lean @@ -312,7 +312,6 @@ theorem free_of_flat_of_isLocalRing [Module.Finite R P] [Flat R P] : Free R P := .of_basis <| .mk (IsLocalRing.linearIndependent_of_flat _ (eq ▸ w.linearIndependent)) <| by exact (span_eq_top_of_tmul_eq_basis _ w <| congr_fun eq).ge -set_option backward.isDefEq.respectTransparency false in /-- If `M → N → P → 0` is a presentation of `P` over a local ring `(R, 𝔪, k)` with `M` finite and `N` finite free, then injectivity of `k ⊗ M → k ⊗ N` implies that `P` is free. @@ -332,7 +331,6 @@ theorem free_of_lTensor_residueField_injective (hg : Surjective g) (h : Exact f end Module -set_option backward.isDefEq.respectTransparency false in /-- Given a linear map `l : M → N` over a local ring `(R, 𝔪, k)` with `M` finite and `N` finite free, diff --git a/Mathlib/RingTheory/Localization/Integral.lean b/Mathlib/RingTheory/Localization/Integral.lean index 3ec7c39074886e..19ddee512c6e67 100644 --- a/Mathlib/RingTheory/Localization/Integral.lean +++ b/Mathlib/RingTheory/Localization/Integral.lean @@ -439,7 +439,6 @@ section variable {Rf Sf : Type*} [CommRing Rf] [CommRing Sf] [Algebra R Rf] [Algebra S Sf] [Algebra Rf Sf] [Algebra R Sf] [IsScalarTower R S Sf] [IsScalarTower R Rf Sf] -set_option backward.isDefEq.respectTransparency false in /-- Taking integral closure commutes with localizations. -/ -- We take in an arbitrary `Algebra (integralClosure R S) (integralClosure Rf Sf)` instance -- so that it applies more easily. diff --git a/Mathlib/RingTheory/Morita/Matrix.lean b/Mathlib/RingTheory/Morita/Matrix.lean index ec8f6d2b40df9e..fddb63710f5eb4 100644 --- a/Mathlib/RingTheory/Morita/Matrix.lean +++ b/Mathlib/RingTheory/Morita/Matrix.lean @@ -93,7 +93,6 @@ lemma MatrixModCat.isScalarTower_toModuleCat (M : ModuleCat (Matrix ι ι R)) : { smul_assoc r m x := show _ = Matrix.scalar ι r • (m • x) by rw [← SemigroupAction.mul_smul, Matrix.scalar_apply, Matrix.smul_eq_diagonal_mul] } -set_option backward.isDefEq.respectTransparency false in /-- The functor from the category of modules over `Mₙ(R)` to the category of modules over `R` induced by sending `M` to the image of `Eᵢᵢ • ·` where `Eᵢᵢ` is the elementary matrix. -/ @[simps] @@ -141,7 +140,6 @@ def MatrixModCat.unitIso (i : ι) : ext simp [fromModuleCatToModuleCatLinearEquivtoModuleCatObj] -set_option backward.isDefEq.respectTransparency false in /-- The linear equiv induced by the equality `toMatrixModCat (toModuleCat M) = Mⁿ` -/ def toModuleCatFromModuleCatLinearEquiv (M : ModuleCat (Matrix ι ι R)) (j : ι) : letI := Module.compHom M (Matrix.scalar (α := R) ι) diff --git a/Mathlib/RingTheory/Multiplicity.lean b/Mathlib/RingTheory/Multiplicity.lean index b017ee4630e5e1..6caa0b80562d5d 100644 --- a/Mathlib/RingTheory/Multiplicity.lean +++ b/Mathlib/RingTheory/Multiplicity.lean @@ -85,7 +85,6 @@ theorem FiniteMultiplicity.emultiplicity_eq_multiplicity (h : FiniteMultiplicity · simp [h] at hm rw [multiplicity_eq_of_emultiplicity_eq_some hm] -set_option backward.isDefEq.respectTransparency false in theorem FiniteMultiplicity.emultiplicity_eq_iff_multiplicity_eq {n : ℕ} (h : FiniteMultiplicity a b) : emultiplicity a b = n ↔ multiplicity a b = n := by simp [h.emultiplicity_eq_multiplicity] @@ -120,12 +119,10 @@ theorem multiplicity_eq_of_emultiplicity_eq {c d : β} unfold multiplicity rw [h] -set_option backward.isDefEq.respectTransparency false in theorem multiplicity_le_of_emultiplicity_le {n : ℕ} (h : emultiplicity a b ≤ n) : multiplicity a b ≤ n := by exact_mod_cast multiplicity_le_emultiplicity.trans h -set_option backward.isDefEq.respectTransparency false in theorem FiniteMultiplicity.emultiplicity_le_of_multiplicity_le (hfin : FiniteMultiplicity a b) {n : ℕ} (h : multiplicity a b ≤ n) : emultiplicity a b ≤ n := by rw [emultiplicity_eq_multiplicity hfin] @@ -135,18 +132,15 @@ theorem le_emultiplicity_of_le_multiplicity {n : ℕ} (h : n ≤ multiplicity a n ≤ emultiplicity a b := by exact_mod_cast (WithTop.coe_mono h).trans multiplicity_le_emultiplicity -set_option backward.isDefEq.respectTransparency false in theorem FiniteMultiplicity.le_multiplicity_of_le_emultiplicity (hfin : FiniteMultiplicity a b) {n : ℕ} (h : n ≤ emultiplicity a b) : n ≤ multiplicity a b := by rw [emultiplicity_eq_multiplicity hfin] at h assumption_mod_cast -set_option backward.isDefEq.respectTransparency false in theorem multiplicity_lt_of_emultiplicity_lt {n : ℕ} (h : emultiplicity a b < n) : multiplicity a b < n := by exact_mod_cast multiplicity_le_emultiplicity.trans_lt h -set_option backward.isDefEq.respectTransparency false in theorem FiniteMultiplicity.emultiplicity_lt_of_multiplicity_lt (hfin : FiniteMultiplicity a b) {n : ℕ} (h : multiplicity a b < n) : emultiplicity a b < n := by rw [emultiplicity_eq_multiplicity hfin] @@ -156,7 +150,6 @@ theorem lt_emultiplicity_of_lt_multiplicity {n : ℕ} (h : n < multiplicity a b) n < emultiplicity a b := by exact_mod_cast (WithTop.coe_strictMono h).trans_le multiplicity_le_emultiplicity -set_option backward.isDefEq.respectTransparency false in theorem FiniteMultiplicity.lt_multiplicity_of_lt_emultiplicity (hfin : FiniteMultiplicity a b) {n : ℕ} (h : n < emultiplicity a b) : n < multiplicity a b := by rw [emultiplicity_eq_multiplicity hfin] at h @@ -199,7 +192,6 @@ theorem FiniteMultiplicity.mul_left {c : α} : FiniteMultiplicity a (b * c) → FiniteMultiplicity a b := fun ⟨n, hn⟩ => ⟨n, fun h => hn (h.trans (dvd_mul_right _ _))⟩ -set_option backward.isDefEq.respectTransparency false in theorem pow_dvd_of_le_emultiplicity {k : ℕ} (hk : k ≤ emultiplicity a b) : a ^ k ∣ b := by classical cases k @@ -217,7 +209,6 @@ theorem pow_dvd_of_le_multiplicity {k : ℕ} (hk : k ≤ multiplicity a b) : theorem pow_multiplicity_dvd (a b : α) : a ^ (multiplicity a b) ∣ b := pow_dvd_of_le_multiplicity le_rfl -set_option backward.isDefEq.respectTransparency false in theorem not_pow_dvd_of_emultiplicity_lt {m : ℕ} (hm : emultiplicity a b < m) : ¬a ^ m ∣ b := fun nh => by unfold emultiplicity at hm @@ -227,7 +218,6 @@ theorem not_pow_dvd_of_emultiplicity_lt {m : ℕ} (hm : emultiplicity a b < m) : exact hn2 ((pow_dvd_pow _ hn1).trans nh) · simp at hm -set_option backward.isDefEq.respectTransparency false in theorem FiniteMultiplicity.not_pow_dvd_of_multiplicity_lt (hf : FiniteMultiplicity a b) {m : ℕ} (hm : multiplicity a b < m) : ¬a ^ m ∣ b := by apply not_pow_dvd_of_emultiplicity_lt @@ -242,7 +232,6 @@ theorem multiplicity_pos_of_dvd (hdiv : a ∣ b) : 0 < multiplicity a b := by theorem emultiplicity_pos_of_dvd (hdiv : a ∣ b) : 0 < emultiplicity a b := lt_emultiplicity_of_lt_multiplicity (multiplicity_pos_of_dvd hdiv) -set_option backward.isDefEq.respectTransparency false in theorem emultiplicity_eq_of_dvd_of_not_dvd {k : ℕ} (hk : a ^ k ∣ b) (hsucc : ¬a ^ (k + 1) ∣ b) : emultiplicity a b = k := by classical have : FiniteMultiplicity a b := ⟨k, hsucc⟩ @@ -266,7 +255,6 @@ theorem pow_dvd_iff_le_emultiplicity {k : ℕ} : a ^ k ∣ b ↔ k ≤ emultiplicity a b := ⟨le_emultiplicity_of_pow_dvd, pow_dvd_of_le_emultiplicity⟩ -set_option backward.isDefEq.respectTransparency false in theorem FiniteMultiplicity.pow_dvd_iff_le_multiplicity (hf : FiniteMultiplicity a b) {k : ℕ} : a ^ k ∣ b ↔ k ≤ multiplicity a b := by exact_mod_cast hf.emultiplicity_eq_multiplicity ▸ pow_dvd_iff_le_emultiplicity @@ -277,7 +265,6 @@ theorem emultiplicity_lt_iff_not_dvd {k : ℕ} : theorem FiniteMultiplicity.multiplicity_lt_iff_not_dvd {k : ℕ} (hf : FiniteMultiplicity a b) : multiplicity a b < k ↔ ¬a ^ k ∣ b := by rw [hf.pow_dvd_iff_le_multiplicity, not_le] -set_option backward.isDefEq.respectTransparency false in theorem emultiplicity_eq_coe {n : ℕ} : emultiplicity a b = n ↔ a ^ n ∣ b ∧ ¬a ^ (n + 1) ∣ b := by constructor @@ -292,7 +279,6 @@ theorem emultiplicity_eq_coe {n : ℕ} : · rw [and_imp] apply emultiplicity_eq_of_dvd_of_not_dvd -set_option backward.isDefEq.respectTransparency false in theorem FiniteMultiplicity.multiplicity_eq_iff (hf : FiniteMultiplicity a b) {n : ℕ} : multiplicity a b = n ↔ a ^ n ∣ b ∧ ¬a ^ (n + 1) ∣ b := by simp [← emultiplicity_eq_coe, hf.emultiplicity_eq_multiplicity] @@ -346,7 +332,6 @@ theorem FiniteMultiplicity.exists_eq_pow_mul_and_not_dvd (hfin : FiniteMultiplic have h₁ : a ^ (multiplicity a b + 1) ∣ b := ⟨k, hc⟩ exact (hfin.multiplicity_eq_iff.1 (by simp)).2 h₁ -set_option backward.isDefEq.respectTransparency false in theorem emultiplicity_le_emultiplicity_iff {c d : β} : emultiplicity a b ≤ emultiplicity c d ↔ ∀ n : ℕ, a ^ n ∣ b → c ^ n ∣ d := by classical constructor @@ -679,7 +664,6 @@ theorem multiplicity_self {a : α} : multiplicity a a = 1 := by · simpa using ha.ne_zero · simp [ha] -set_option backward.isDefEq.respectTransparency false in @[simp] theorem FiniteMultiplicity.emultiplicity_self {a : α} (hfin : FiniteMultiplicity a a) : emultiplicity a a = 1 := by @@ -719,14 +703,12 @@ theorem Finset.emultiplicity_prod {β : Type*} {p : α} (hp : Prime p) (s : Fins exact emultiplicity_of_one_right hp.not_unit | insert a s has ih => simpa [has, ← ih] using emultiplicity_mul hp -set_option backward.isDefEq.respectTransparency false in theorem emultiplicity_pow {p a : α} (hp : Prime p) {k : ℕ} : emultiplicity p (a ^ k) = k * emultiplicity p a := by induction k with | zero => simp [emultiplicity_of_one_right hp.not_unit] | succ k hk => simp [pow_succ, emultiplicity_mul hp, hk, add_mul] -set_option backward.isDefEq.respectTransparency false in protected theorem FiniteMultiplicity.multiplicity_pow {p a : α} (hp : Prime p) (ha : FiniteMultiplicity p a) {k : ℕ} : multiplicity p (a ^ k) = k * multiplicity p a := by exact_mod_cast (ha.pow hp).emultiplicity_eq_multiplicity ▸ diff --git a/Mathlib/RingTheory/MvPowerSeries/NoZeroDivisors.lean b/Mathlib/RingTheory/MvPowerSeries/NoZeroDivisors.lean index d679f71680065a..488c54d425d4ef 100644 --- a/Mathlib/RingTheory/MvPowerSeries/NoZeroDivisors.lean +++ b/Mathlib/RingTheory/MvPowerSeries/NoZeroDivisors.lean @@ -147,7 +147,6 @@ instance : NoZeroDivisors (MvPowerSeries σ R) where exact IsWellOrder.toIsWellFounded simpa only [← lexOrder_eq_top_iff_eq_zero, lexOrder_mul, WithTop.add_eq_top] using h -set_option backward.isDefEq.respectTransparency false in theorem weightedOrder_mul (w : σ → ℕ) (f g : MvPowerSeries σ R) : (f * g).weightedOrder w = f.weightedOrder w + g.weightedOrder w := by apply le_antisymm _ (le_weightedOrder_mul w) diff --git a/Mathlib/RingTheory/MvPowerSeries/Order.lean b/Mathlib/RingTheory/MvPowerSeries/Order.lean index 5b76ddb8267c27..a85341c6cc0e36 100644 --- a/Mathlib/RingTheory/MvPowerSeries/Order.lean +++ b/Mathlib/RingTheory/MvPowerSeries/Order.lean @@ -153,7 +153,6 @@ theorem weightedOrder_eq_top_iff : f.weightedOrder w = ⊤ ↔ f = 0 := by rw [← not_iff_not, ← ne_eq, ← ne_eq, ne_zero_iff_weightedOrder_finite w, coe_toNat_eq_self] -set_option backward.isDefEq.respectTransparency false in /-- If the order of a formal power series `f` is finite, then some coefficient of weight equal to the order of `f` is nonzero. -/ theorem exists_coeff_ne_zero_and_weightedOrder @@ -164,7 +163,6 @@ theorem exists_coeff_ne_zero_and_weightedOrder generalize_proofs h1 exact Nat.find_spec h1 -set_option backward.isDefEq.respectTransparency false in /-- If the `d`th coefficient of a formal power series is nonzero, then the weighted order of the power series is less than or equal to `weight d w`. -/ theorem weightedOrder_le {d : σ →₀ ℕ} (h : coeff d f ≠ 0) : @@ -180,7 +178,6 @@ theorem coeff_eq_zero_of_lt_weightedOrder {d : σ →₀ ℕ} (h : (weight w d) coeff d f = 0 := by contrapose! h; exact weightedOrder_le w h -set_option backward.isDefEq.respectTransparency false in /-- The order of a formal power series is at least `n` if the `d`th coefficient is `0` for all `d` such that `weight w d < n`. -/ theorem nat_le_weightedOrder {n : ℕ} (h : ∀ d, weight w d < n → coeff d f = 0) : @@ -192,7 +189,6 @@ theorem nat_le_weightedOrder {n : ℕ} (h : ∀ d, weight w d < n → coeff d f rw [← hd, Nat.cast_lt] at H exact hfd (h d H) -set_option backward.isDefEq.respectTransparency false in /-- The order of a formal power series is at least `n` if the `d`th coefficient is `0` for all `d` such that `weight w d < n`. -/ theorem le_weightedOrder {n : ℕ∞} (h : ∀ d : σ →₀ ℕ, weight w d < n → coeff d f = 0) : @@ -203,7 +199,6 @@ theorem le_weightedOrder {n : ℕ∞} (h : ∀ d : σ →₀ ℕ, weight w d < n · apply nat_le_weightedOrder; simpa only [ENat.some_eq_coe, Nat.cast_lt] using h -set_option backward.isDefEq.respectTransparency false in /-- The order of a formal power series is exactly `n` if and only if some coefficient of weight `n` is nonzero, and the `d`th coefficient is `0` for all `d` such that `weight w d < n`. -/ theorem weightedOrder_eq_nat {n : ℕ} : @@ -250,7 +245,6 @@ theorem min_weightedOrder_le_add : [coeff_eq_zero_of_lt_weightedOrder w, lt_min_iff, map_add, add_zero, imp_true_iff] -set_option backward.isDefEq.respectTransparency false in private theorem weightedOrder_add_of_weightedOrder_lt.aux (H : f.weightedOrder w < g.weightedOrder w) : (f + g).weightedOrder w = f.weightedOrder w := by @@ -280,7 +274,6 @@ theorem weightedOrder_add_of_weightedOrder_ne (h : f.weightedOrder w ≠ g.weigh simp only [le_inf_iff, weightedOrder_add_of_weightedOrder_lt.aux w H₁] exact ⟨le_rfl, le_of_lt H₁⟩ -set_option backward.isDefEq.respectTransparency false in /-- The weighted_order of the product of two formal power series is at least the sum of their orders. -/ theorem le_weightedOrder_mul : @@ -482,7 +475,6 @@ theorem le_order_prod {R : Type*} [CommSemiring R] {ι : Type*} (f : ι → MvPowerSeries σ R) (s : Finset ι) : ∑ i ∈ s, (f i).order ≤ (∏ i ∈ s, f i).order := le_weightedOrder_prod _ _ _ -set_option backward.isDefEq.respectTransparency false in theorem one_le_order_iff_constCoeff_eq_zero : 1 ≤ f.order ↔ f.constantCoeff = 0 := by constructor @@ -622,7 +614,6 @@ theorem weightedHomogeneousComponent_of_lt_weightedOrder_eq_zero exact hf · rw [map_zero] -set_option backward.isDefEq.respectTransparency false in variable {w} in theorem weightedHomogeneousComponent_of_weightedOrder {f : MvPowerSeries σ R} {p : ℕ} (hf : p = f.weightedOrder w) : diff --git a/Mathlib/RingTheory/MvPowerSeries/Substitution.lean b/Mathlib/RingTheory/MvPowerSeries/Substitution.lean index 43d442108f5206..8847a2e11e21d7 100644 --- a/Mathlib/RingTheory/MvPowerSeries/Substitution.lean +++ b/Mathlib/RingTheory/MvPowerSeries/Substitution.lean @@ -210,7 +210,6 @@ theorem coe_substAlgHom (ha : HasSubst a) : letI : UniformSpace S := ⊥ rw [substAlgHom_eq_aeval, coe_aeval ha.hasEval, subst_eq_eval₂] -set_option backward.isDefEq.respectTransparency false in theorem subst_self : subst (MvPowerSeries.X : σ → MvPowerSeries σ R) = id := by rw [← coe_substAlgHom HasSubst.X] letI : UniformSpace R := ⊥ diff --git a/Mathlib/RingTheory/Noetherian/Basic.lean b/Mathlib/RingTheory/Noetherian/Basic.lean index 6582dec1c1cd19..e80ace46b31d83 100644 --- a/Mathlib/RingTheory/Noetherian/Basic.lean +++ b/Mathlib/RingTheory/Noetherian/Basic.lean @@ -163,7 +163,6 @@ instance isNoetherian_prod [IsNoetherian R M] [IsNoetherian R N] : IsNoetherian fun x ⟨_, hx2⟩ => ⟨x.1, Prod.ext rfl <| Eq.symm <| LinearMap.mem_ker.1 hx2⟩ Submodule.map_comap_eq_self this ▸ (noetherian _).map _⟩ -set_option backward.isDefEq.respectTransparency false in instance isNoetherian_sup (M₁ M₂ : Submodule R N) [IsNoetherian R M₁] [IsNoetherian R M₂] : IsNoetherian R ↥(M₁ ⊔ M₂) := by have := isNoetherian_range (M₁.subtype.coprod M₂.subtype) @@ -192,7 +191,6 @@ instance isNoetherian_iSup : · intros; rw [iSup_of_empty]; infer_instance · intro _ _ ih _ _; rw [iSup_option]; infer_instance -set_option backward.isDefEq.respectTransparency false in /-- If the first and final modules in an exact sequence are Noetherian, then the middle module is also Noetherian. -/ theorem isNoetherian_of_range_eq_ker {P : Type*} [AddCommGroup P] [Module R P] [IsNoetherian R M] @@ -209,7 +207,6 @@ theorem isNoetherian_of_range_eq_ker {P : Type*} [AddCommGroup P] [Module R P] [ (by simp [Submodule.map_comap_eq, inf_comm, Submodule.range_liftQ]) (by simp [Submodule.comap_map_eq, h]) -set_option backward.isDefEq.respectTransparency false in theorem isNoetherian_iff_submodule_quotient (S : Submodule R N) : IsNoetherian R N ↔ IsNoetherian R S ∧ IsNoetherian R (N ⧸ S) := by refine ⟨fun _ ↦ ⟨inferInstance, inferInstance⟩, fun ⟨_, _⟩ ↦ ?_⟩ @@ -326,7 +323,6 @@ instance isNoetherian_of_isNoetherianRing_of_finite (R M : Type*) have ⟨_, _, h⟩ := Module.Finite.exists_fin' R M isNoetherian_of_surjective _ (LinearMap.range_eq_top.mpr h) -set_option backward.isDefEq.respectTransparency false in theorem isNoetherian_of_fg_of_noetherian {R M} [Ring R] [AddCommGroup M] [Module R M] (N : Submodule R M) [I : IsNoetherianRing R] (hN : N.FG) : IsNoetherian R N := haveI : Module.Finite R N := .of_fg hN; inferInstance @@ -377,7 +373,6 @@ variable {R M : Type*} [Ring R] [AddCommGroup M] [Module R M] theorem FG.of_le_of_isNoetherian {S T : Submodule R M} [IsNoetherian R T] (hST : S ≤ T) : S.FG := isNoetherian_submodule.mp inferInstance _ hST -set_option backward.isDefEq.respectTransparency false in /-- A submodule contained in an FG submodule is FG over noetherian rings. -/ lemma FG.of_le [IsNoetherianRing R] {S T : Submodule R M} (hT : T.FG) (hST : S ≤ T) : S.FG := by rw [← Module.Finite.iff_fg] at hT diff --git a/Mathlib/RingTheory/Noetherian/Orzech.lean b/Mathlib/RingTheory/Noetherian/Orzech.lean index 2e308120ddd72e..ed2d8f1243cb19 100644 --- a/Mathlib/RingTheory/Noetherian/Orzech.lean +++ b/Mathlib/RingTheory/Noetherian/Orzech.lean @@ -49,7 +49,6 @@ theorem IsNoetherian.injective_of_surjective_of_injective (i f : N →ₗ[R] M) exact LinearMap.ker_eq_bot.1 <| bot_unique <| f.ker_le_of_iterateMapComap_eq_succ i ⊥ n (H _ (Nat.le_succ _)) hf hi -set_option backward.isDefEq.respectTransparency false in /-- **Orzech's theorem** for Noetherian modules: if `R` is a ring (not necessarily commutative), `M` is a Noetherian `R`-module, `N` is a submodule, `f : N →ₗ[R] M` is surjective, then `f` is also injective. -/ diff --git a/Mathlib/RingTheory/Polynomial/DegreeLT.lean b/Mathlib/RingTheory/Polynomial/DegreeLT.lean index d7ac8ab9cd5896..eb85f8480eec66 100644 --- a/Mathlib/RingTheory/Polynomial/DegreeLT.lean +++ b/Mathlib/RingTheory/Polynomial/DegreeLT.lean @@ -174,7 +174,6 @@ noncomputable def taylorLinearEquiv (r : R) (n : ℕ) : R[X]_n ≃ₗ[R] R[X]_n (taylorLinearEquiv r n).symm = taylorLinearEquiv (-r) n := LinearEquiv.ext <| fun _ ↦ rfl -set_option backward.isDefEq.respectTransparency false in @[simp] theorem det_taylorLinearEquiv_toLinearMap : (taylorLinearEquiv r n).toLinearMap.det = 1 := by nontriviality R @@ -189,7 +188,6 @@ set_option backward.isDefEq.respectTransparency false in change (taylor r (degreeLT.basis R n j)).coeff i = 0 rw [degreeLT.basis_val, coeff_eq_zero_of_degree_lt (by simpa [-taylor_X_pow, -taylor_pow])] -set_option backward.isDefEq.respectTransparency false in @[simp] theorem det_taylorLinearEquiv : (taylorLinearEquiv r n).det = 1 := Units.ext <| by rw [LinearEquiv.coe_det, det_taylorLinearEquiv_toLinearMap, Units.val_one] diff --git a/Mathlib/RingTheory/PowerSeries/Order.lean b/Mathlib/RingTheory/PowerSeries/Order.lean index 5bc25eda91e9ab..f279617fef3484 100644 --- a/Mathlib/RingTheory/PowerSeries/Order.lean +++ b/Mathlib/RingTheory/PowerSeries/Order.lean @@ -80,7 +80,6 @@ theorem coeff_order (h : φ ≠ 0) : coeff φ.order.toNat φ ≠ 0 := by generalize_proofs h exact Nat.find_spec h -set_option backward.isDefEq.respectTransparency false in /-- If the `n`th coefficient of a formal power series is nonzero, then the order of the power series is less than or equal to `n`. -/ theorem order_le (n : ℕ) (h : coeff n φ ≠ 0) : order φ ≤ n := by @@ -101,7 +100,6 @@ theorem coeff_of_lt_order_toNat (n : ℕ) (h : n < φ.order.toNat) : coeff n φ · refine coeff_of_lt_order _ ?_ rwa [← coe_toNat_order h', ENat.coe_lt_coe] -set_option backward.isDefEq.respectTransparency false in /-- The order of a formal power series is at least `n` if the `i`th coefficient is `0` for all `i < n`. -/ theorem nat_le_order (φ : R⟦X⟧) (n : ℕ) (h : ∀ i < n, coeff i φ = 0) : ↑n ≤ order φ := by @@ -111,7 +109,6 @@ theorem nat_le_order (φ : R⟦X⟧) (n : ℕ) (h : ∀ i < n, coeff i φ = 0) : · simp · simpa [Nat.le_find_iff] -set_option backward.isDefEq.respectTransparency false in /-- The order of a formal power series is at least `n` if the `i`th coefficient is `0` for all `i < n`. -/ theorem le_order (φ : R⟦X⟧) (n : ℕ∞) (h : ∀ i : ℕ, ↑i < n → coeff i φ = 0) : @@ -122,7 +119,6 @@ theorem le_order (φ : R⟦X⟧) (n : ℕ∞) (h : ∀ i : ℕ, ↑i < n → coe convert nat_le_order φ n _ simpa using h -set_option backward.isDefEq.respectTransparency false in /-- The order of a formal power series is exactly `n` if the `n`th coefficient is nonzero, and the `i`th coefficient is `0` for all `i < n`. -/ theorem order_eq_nat {φ : R⟦X⟧} {n : ℕ} : @@ -132,7 +128,6 @@ theorem order_eq_nat {φ : R⟦X⟧} {n : ℕ} : · simp simp [order, dif_neg hφ, Nat.find_eq_iff] -set_option backward.isDefEq.respectTransparency false in /-- The order of a formal power series is exactly `n` if the `n`th coefficient is nonzero, and the `i`th coefficient is `0` for all `i < n`. -/ theorem order_eq {φ : R⟦X⟧} {n : ℕ∞} : @@ -193,7 +188,6 @@ theorem le_order_smul {a : R} : φ.order ≤ (a • φ).order := le_order _ φ.order fun i hi => by simp [coeff_of_lt_order i hi] -set_option backward.isDefEq.respectTransparency false in /-- The order of the product of two formal power series is at least the sum of their orders. -/ theorem le_order_mul (φ ψ : R⟦X⟧) : order φ + order ψ ≤ order (φ * ψ) := by @@ -224,7 +218,6 @@ theorem le_order_prod {R : Type*} [CommSemiring R] {ι : Type*} (φ : ι → R alias order_mul_ge := le_order_mul -set_option backward.isDefEq.respectTransparency false in theorem one_le_order_iff_constCoeff_eq_zero : 1 ≤ φ.order ↔ φ.constantCoeff = 0 := by constructor @@ -246,7 +239,6 @@ theorem le_order_pow_of_constantCoeff_eq_zero (n : ℕ) (hf : φ.constantCoeff = refine .trans ?_ (le_order_pow _ n) simpa using le_mul_of_one_le_right' (one_le_order_iff_constCoeff_eq_zero.mpr hf) -set_option backward.isDefEq.respectTransparency false in /-- The order of the monomial `a*X^n` is infinite if `a = 0` and `n` otherwise. -/ theorem order_monomial (n : ℕ) (a : R) [Decidable (a = 0)] : order (monomial n a) = if a = 0 then (⊤ : ℕ∞) else n := by @@ -265,7 +257,6 @@ theorem order_monomial_of_ne_zero (n : ℕ) (a : R) (h : a ≠ 0) : order (monom classical rw [order_monomial, if_neg h] -set_option backward.isDefEq.respectTransparency false in /-- If `n` is strictly smaller than the order of `ψ`, then the `n`th coefficient of its product with any other power series is `0`. -/ theorem coeff_mul_of_lt_order {φ ψ : R⟦X⟧} {n : ℕ} (h : ↑n < ψ.order) : diff --git a/Mathlib/RingTheory/PowerSeries/WeierstrassPreparation.lean b/Mathlib/RingTheory/PowerSeries/WeierstrassPreparation.lean index 811a31aed51d79..b09ba772520e46 100644 --- a/Mathlib/RingTheory/PowerSeries/WeierstrassPreparation.lean +++ b/Mathlib/RingTheory/PowerSeries/WeierstrassPreparation.lean @@ -259,7 +259,6 @@ theorem coeff_seq_mem (k : ℕ) {i : ℕ} (hi : i ≥ (g.map (Ideal.Quotient.mk rw [coeff_mk] exact hq (by simp) -set_option backward.isDefEq.respectTransparency false in theorem coeff_seq_succ_sub_seq_mem (k i : ℕ) : coeff i (H.seq f (k + 1) - H.seq f k) ∈ I ^ k := by rw [seq, add_sub_cancel_left] diff --git a/Mathlib/RingTheory/Regular/IsSMulRegular.lean b/Mathlib/RingTheory/Regular/IsSMulRegular.lean index d4f0fc2ef96395..f7560ab2f90cfa 100644 --- a/Mathlib/RingTheory/Regular/IsSMulRegular.lean +++ b/Mathlib/RingTheory/Regular/IsSMulRegular.lean @@ -74,7 +74,6 @@ variable [Ring R] [AddCommGroup M] [Module R M] [AddCommGroup M'] [Module R M'] [AddCommGroup M''] [Module R M''] (N : Submodule R M) (r : R) -set_option backward.isDefEq.respectTransparency false in lemma isSMulRegular_submodule_iff_right_eq_zero_of_smul : IsSMulRegular N r ↔ ∀ x ∈ N, r • x = 0 → x = 0 := isSMulRegular_iff_right_eq_zero_of_smul.trans <| @@ -107,7 +106,6 @@ lemma isSMulRegular_of_range_eq_ker {f : M →ₗ[R] M'} {g : M' →ₗ[R] M''} refine (congrArg f (h1.right_eq_zero_of_smul ?_)).trans f.map_zero exact hf <| (f.map_smul r y).trans <| hx.trans f.map_zero.symm -set_option backward.isDefEq.respectTransparency false in lemma isSMulRegular_of_isSMulRegular_on_submodule_on_quotient (h1 : IsSMulRegular N r) (h2 : IsSMulRegular (M ⧸ N) r) : IsSMulRegular M r := isSMulRegular_of_range_eq_ker N.injective_subtype diff --git a/Mathlib/RingTheory/SimpleModule/Basic.lean b/Mathlib/RingTheory/SimpleModule/Basic.lean index 01b9c26568ff90..f8170e3af50a83 100644 --- a/Mathlib/RingTheory/SimpleModule/Basic.lean +++ b/Mathlib/RingTheory/SimpleModule/Basic.lean @@ -106,7 +106,6 @@ theorem IsSimpleModule.congr (e : M ≃ₗ[R] N) [IsSimpleModule R N] : IsSimple theorem LinearEquiv.isSimpleModule_iff (e : M ≃ₗ[R] N) : IsSimpleModule R M ↔ IsSimpleModule R N := ⟨(·.congr e.symm), (·.congr e)⟩ -set_option backward.isDefEq.respectTransparency false in theorem isSimpleModule_iff_isAtom : IsSimpleModule R m ↔ IsAtom m := by rw [← Set.isSimpleOrder_Iic_iff_isAtom, isSimpleModule_iff] exact m.mapIic.isSimpleOrder_iff @@ -115,7 +114,6 @@ theorem isSimpleModule_iff_isCoatom : IsSimpleModule R (M ⧸ m) ↔ IsCoatom m rw [← Set.isSimpleOrder_Ici_iff_isCoatom, isSimpleModule_iff] exact (Submodule.comapMkQRelIso m).isSimpleOrder_iff -set_option backward.isDefEq.respectTransparency false in theorem covBy_iff_quot_is_simple {A B : Submodule R M} (hAB : A ≤ B) : A ⋖ B ↔ IsSimpleModule R (B ⧸ Submodule.comap B.subtype A) := by set f : Submodule R B ≃o Set.Iic B := B.mapIic with hf @@ -124,7 +122,6 @@ theorem covBy_iff_quot_is_simple {A B : Submodule R M} (hAB : A ≤ B) : namespace IsSimpleModule -set_option backward.isDefEq.respectTransparency false in @[simp] theorem isAtom [IsSimpleModule R m] : IsAtom m := isSimpleModule_iff_isAtom.1 ‹_› @@ -195,7 +192,6 @@ theorem isSimpleModule_self_iff_isUnit : obtain ⟨z, hzy : z * y = 1⟩ := h y hy 1 exact ⟨⟨x, y, left_inv_eq_right_inv hzy hyx ▸ hzy, hyx⟩, rfl⟩ -set_option backward.isDefEq.respectTransparency false in theorem IsSemisimpleModule.of_sSup_simples_eq_top (h : sSup { m : Submodule R M | IsSimpleModule R m } = ⊤) : IsSemisimpleModule R M where __ := complementedLattice_of_sSup_atoms_eq_top (by simp_rw [← h, isSimpleModule_iff_isAtom]) @@ -233,7 +229,6 @@ end Module.Finite namespace IsSemisimpleModule -set_option backward.isDefEq.respectTransparency false in theorem eq_bot_or_exists_simple_le (N : Submodule R M) [IsSemisimpleModule R N] : N = ⊥ ∨ ∃ m ≤ N, IsSimpleModule R m := by rw [← N.subsingleton_iff_eq_bot, ← Submodule.subsingleton_iff R, ← subsingleton_iff_bot_eq_top] @@ -267,36 +262,30 @@ theorem lifting_property {P} [AddCommGroup P] [Module R P] (f : M →ₗ[R] N) simp only [LinearMap.comp_apply, ← eq, LinearEquiv.coe_coe, e.symm_apply_apply] simp [e] -set_option backward.isDefEq.respectTransparency false in theorem sSup_simples_le (N : Submodule R M) : sSup { m : Submodule R M | IsSimpleModule R m ∧ m ≤ N } = N := by simpa only [isSimpleModule_iff_isAtom] using sSup_atoms_le_eq _ variable (R M) -set_option backward.isDefEq.respectTransparency false in theorem exists_simple_submodule [Nontrivial M] : ∃ m : Submodule R M, IsSimpleModule R m := by simpa only [isSimpleModule_iff_isAtom] using IsAtomic.exists_atom _ -set_option backward.isDefEq.respectTransparency false in theorem sSup_simples_eq_top : sSup { m : Submodule R M | IsSimpleModule R m } = ⊤ := by simpa only [isSimpleModule_iff_isAtom] using sSup_atoms_eq_top -set_option backward.isDefEq.respectTransparency false in theorem exists_sSupIndep_sSup_simples_eq_top : ∃ s : Set (Submodule R M), sSupIndep s ∧ sSup s = ⊤ ∧ ∀ m ∈ s, IsSimpleModule R m := by have := sSup_simples_eq_top R M simp_rw [isSimpleModule_iff_isAtom] at this ⊢ exact exists_sSupIndep_of_sSup_atoms_eq_top this -set_option backward.isDefEq.respectTransparency false in /-- The annihilator of a semisimple module over a commutative ring is a radical ideal. -/ theorem annihilator_isRadical (R) [CommRing R] [Module R M] [IsSemisimpleModule R M] : (Module.annihilator R M).IsRadical := by rw [← Submodule.annihilator_top, ← sSup_simples_eq_top, sSup_eq_iSup', Submodule.annihilator_iSup] exact Ideal.isRadical_iInf _ fun i ↦ (i.2.annihilator_isMaximal).isPrime.isRadical -set_option backward.isDefEq.respectTransparency false in instance submodule {m : Submodule R M} : IsSemisimpleModule R m where __ := m.mapIic.complementedLattice_iff.2 IsModularLattice.complementedLattice_Iic @@ -306,11 +295,9 @@ open LinearMap theorem congr (e : N ≃ₗ[R] M) : IsSemisimpleModule R N where __ := (Submodule.orderIsoMapComap e.symm).complementedLattice -set_option backward.isDefEq.respectTransparency false in theorem of_injective (f : N →ₗ[R] M) (hf : Function.Injective f) : IsSemisimpleModule R N := congr (Submodule.topEquiv.symm.trans <| Submodule.equivMapOfInjective f hf _) -set_option backward.isDefEq.respectTransparency false in instance quotient : IsSemisimpleModule R (M ⧸ m) := have ⟨_, ⟨e⟩⟩ := exists_submodule_linearEquiv_quotient m .congr e.symm @@ -321,7 +308,6 @@ instance (priority := low) [Module.Finite R M] : IsNoetherian R M where letI := Module.Finite.equiv e.symm .of_finite -set_option backward.isDefEq.respectTransparency false in -- does not work as an instance, not sure why protected theorem range (f : M →ₗ[R] N) : IsSemisimpleModule R (range f) := congr (quotKerEquivRange _).symm @@ -356,13 +342,11 @@ theorem LinearEquiv.isSemisimpleModule_iff (e : M ≃ₗ[R] N) : IsSemisimpleModule R M ↔ IsSemisimpleModule R N := ⟨(·.congr e.symm), (·.congr e)⟩ -set_option backward.isDefEq.respectTransparency false in /-- A module is semisimple iff it is generated by its simple submodules. -/ theorem sSup_simples_eq_top_iff_isSemisimpleModule : sSup { m : Submodule R M | IsSimpleModule R m } = ⊤ ↔ IsSemisimpleModule R M := ⟨.of_sSup_simples_eq_top, fun _ ↦ IsSemisimpleModule.sSup_simples_eq_top _ _⟩ -set_option backward.isDefEq.respectTransparency false in /-- A module generated by semisimple submodules is itself semisimple. -/ lemma isSemisimpleModule_of_isSemisimpleModule_submodule {s : Set ι} {p : ι → Submodule R M} (hp : ∀ i ∈ s, IsSemisimpleModule R (p i)) (hp' : ⨆ i ∈ s, p i = ⊤) : @@ -371,7 +355,6 @@ lemma isSemisimpleModule_of_isSemisimpleModule_submodule {s : Set ι} {p : ι refine complementedLattice_of_complementedLattice_Iic (fun i hi ↦ ?_) hp' simpa only [← (p i).mapIic.complementedLattice_iff] using hp i hi -set_option backward.isDefEq.respectTransparency false in open Submodule in lemma isSemisimpleModule_biSup_of_isSemisimpleModule_submodule {s : Set ι} {p : ι → Submodule R M} (hp : ∀ i ∈ s, IsSemisimpleModule R (p i)) : @@ -381,7 +364,6 @@ lemma isSemisimpleModule_biSup_of_isSemisimpleModule_submodule {s : Set ι} {p : (biSup_comap_subtype_eq_top ..) simp_rw [range_subtype, le_biSup p ‹_›] -set_option backward.isDefEq.respectTransparency false in lemma isSemisimpleModule_of_isSemisimpleModule_submodule' {p : ι → Submodule R M} (hp : ∀ i, IsSemisimpleModule R (p i)) (hp' : ⨆ i, p i = ⊤) : IsSemisimpleModule R M := @@ -393,7 +375,6 @@ instance {ι} (M : ι → Type*) [∀ i, AddCommGroup (M i)] [∀ i, Module R (M exact isSemisimpleModule_of_isSemisimpleModule_submodule' (fun _ ↦ .range _) DFinsupp.iSup_range_lsingle -set_option backward.isDefEq.respectTransparency false in variable (R M) in theorem IsSemisimpleModule.exists_linearEquiv_dfinsupp [IsSemisimpleModule R M] : ∃ (s : Set (Submodule R M)) (_ : M ≃ₗ[R] Π₀ m : s, m.1), @@ -412,7 +393,6 @@ theorem isSemisimpleModule_iff_exists_linearEquiv_dfinsupp : IsSemisimpleModule have ⟨s, e, h⟩ := IsSemisimpleModule.exists_linearEquiv_dfinsupp R M exact ⟨s, e, h.2⟩ -set_option backward.isDefEq.respectTransparency false in variable (R M) in theorem IsSemisimpleModule.exists_linearEquiv_fin_dfinsupp [IsSemisimpleModule R M] [Module.Finite R M] : ∃ (n : ℕ) (S : Fin n → Submodule R M) @@ -429,7 +409,6 @@ instance {ι} [Finite ι] (M : ι → Type*) [∀ i, AddCommGroup (M i)] [∀ i, exact isSemisimpleModule_of_isSemisimpleModule_submodule' (p := (range <| single _ _ ·)) (fun i ↦ .range _) (by simp_rw [range_eq_map, Submodule.iSup_map_single, Submodule.pi_top]) -set_option backward.isDefEq.respectTransparency false in theorem IsSemisimpleModule.sup {p q : Submodule R M} (_ : IsSemisimpleModule R p) (_ : IsSemisimpleModule R q) : IsSemisimpleModule R ↥(p ⊔ q) := by @@ -445,7 +424,6 @@ theorem IsSemisimpleRing.exists_linearEquiv_ideal_of_isSimpleModule [IsSemisimpl have ⟨I, ⟨e'⟩⟩ := IsSemisimpleModule.exists_submodule_linearEquiv_quotient J ⟨I, ⟨e.trans e'.symm⟩⟩ -set_option backward.isDefEq.respectTransparency false in instance (ι) [IsSemisimpleModule R M] : IsSemisimpleModule R (ι →₀ M) := isSemisimpleModule_of_isSemisimpleModule_submodule' (fun _ ↦ .congr (LinearMap.quotKerEquivRange _).symm) Finsupp.iSup_lsingle_range @@ -536,7 +514,6 @@ theorem isCoatom_ker_of_surjective [IsSimpleModule R N] {f : M →ₗ[R] N} rw [← isSimpleModule_iff_isCoatom] exact IsSimpleModule.congr (f.quotKerEquivOfSurjective hf) -set_option backward.isDefEq.respectTransparency false in theorem linearEquiv_of_ne_zero [IsSemisimpleModule R M] [IsSimpleModule R N] {f : M →ₗ[R] N} (h : f ≠ 0) : ∃ S : Submodule R M, Nonempty (N ≃ₗ[R] S) := have ⟨m, (_ : IsSimpleModule R m), ne⟩ := @@ -567,7 +544,6 @@ end LinearMap namespace JordanHolderModule -set_option backward.isDefEq.respectTransparency false in instance instJordanHolderLattice : JordanHolderLattice (Submodule R M) where IsMaximal := (· ⋖ ·) lt_of_isMaximal := CovBy.lt diff --git a/Mathlib/RingTheory/Smooth/IntegralClosure.lean b/Mathlib/RingTheory/Smooth/IntegralClosure.lean index 19a0192da98b01..1b5a279dd820d6 100644 --- a/Mathlib/RingTheory/Smooth/IntegralClosure.lean +++ b/Mathlib/RingTheory/Smooth/IntegralClosure.lean @@ -49,7 +49,6 @@ def TensorProduct.toIntegralClosure (R := R) (A := S))).tower_top (A := S)).smul x simp [smul_tmul'] -set_option backward.isDefEq.respectTransparency false in lemma TensorProduct.toIntegralClosure_injective_of_flat [Module.Flat R S] : Function.Injective (toIntegralClosure R S B) := by refine Function.Injective.of_comp (f := (integralClosure _ _).val) ?_ diff --git a/Mathlib/RingTheory/Smooth/Kaehler.lean b/Mathlib/RingTheory/Smooth/Kaehler.lean index f9b5bb05f0bc55..f8fc8ec690fe6c 100644 --- a/Mathlib/RingTheory/Smooth/Kaehler.lean +++ b/Mathlib/RingTheory/Smooth/Kaehler.lean @@ -99,7 +99,6 @@ lemma isScalarTower_of_section_of_ker_sqZero : refine Ideal.mul_mem_mul ?_ m.2 simpa [RingHom.mem_ker, sub_eq_zero] using AlgHom.congr_fun hg (algebraMap P S p) -set_option backward.isDefEq.respectTransparency false in /-- Given a surjective algebra hom `f : P →ₐ[R] S` with square-zero kernel `I`, and a section `g : S →ₐ[R] P` (as algebra homs), @@ -113,7 +112,6 @@ def retractionOfSectionOfKerSqZero : S ⊗[P] Ω[P⁄R] →ₗ[P] RingHom.ker (a (IsScalarTower.toAlgHom R P S) hf' g hg).liftKaehlerDifferential (f.liftBaseChange S).restrictScalars P -set_option backward.isDefEq.respectTransparency false in @[simp] lemma retractionOfSectionOfKerSqZero_tmul_D (s : S) (t : P) : retractionOfSectionOfKerSqZero g hf' hg (s ⊗ₜ .D _ _ t) = @@ -142,7 +140,6 @@ include hl -- suppose we have a (set-theoretic) section variable (σ : S → P) (hσ : ∀ x, algebraMap P S (σ x) = x) -set_option backward.isDefEq.respectTransparency false in lemma sectionOfRetractionKerToTensorAux_prop (x y) (h : algebraMap P S x = algebraMap P S y) : x - l (1 ⊗ₜ .D _ _ x) = y - l (1 ⊗ₜ .D _ _ y) := by rw [sub_eq_iff_eq_add, sub_add_comm, ← sub_eq_iff_eq_add, ← Submodule.coe_sub, @@ -217,7 +214,6 @@ end ofRetraction variable [Algebra R S] [IsScalarTower R P S] variable (hf' : (RingHom.ker (algebraMap P S)) ^ 2 = ⊥) (hf : Surjective (algebraMap P S)) -set_option backward.isDefEq.respectTransparency false in /-- Given a surjective algebra homomorphism `f : P →ₐ[R] S` with square-zero kernel `I`, there is a one-to-one correspondence between `P`-linear retractions of `I →ₗ[P] S ⊗[P] Ω[P/R]` diff --git a/Mathlib/RingTheory/TensorProduct/MonoidAlgebra.lean b/Mathlib/RingTheory/TensorProduct/MonoidAlgebra.lean index 25cd053dde70fa..e55d39b273c879 100644 --- a/Mathlib/RingTheory/TensorProduct/MonoidAlgebra.lean +++ b/Mathlib/RingTheory/TensorProduct/MonoidAlgebra.lean @@ -37,7 +37,6 @@ noncomputable def _root_.AddMonoidAlgebra.tensorEquiv.invFun [AddCommMonoid M] : (Algebra.TensorProduct.includeRight.toMonoidHom.comp <| AddMonoidAlgebra.of B M) fun _ _ ↦ .all .. -set_option backward.isDefEq.respectTransparency false in /-- Implementation detail. -/ @[to_additive existing (dont_translate := R A B)] def tensorEquiv.invFun : (A ⊗[R] B)[M] →ₐ[A] A ⊗[R] B[M] := diff --git a/Mathlib/RingTheory/UniqueFactorizationDomain/Basic.lean b/Mathlib/RingTheory/UniqueFactorizationDomain/Basic.lean index 868e718ad9d351..790fdd75e6c557 100644 --- a/Mathlib/RingTheory/UniqueFactorizationDomain/Basic.lean +++ b/Mathlib/RingTheory/UniqueFactorizationDomain/Basic.lean @@ -318,7 +318,6 @@ variable [CommMonoidWithZero α] [IsCancelMulZero α] variable (pf : ∀ a : α, a ≠ 0 → ∃ f : Multiset α, (∀ b ∈ f, Prime b) ∧ f.prod ~ᵤ a) include pf -set_option backward.isDefEq.respectTransparency false in theorem WfDvdMonoid.of_exists_prime_factors : WfDvdMonoid α := ⟨by classical diff --git a/Mathlib/RingTheory/UniqueFactorizationDomain/Multiplicity.lean b/Mathlib/RingTheory/UniqueFactorizationDomain/Multiplicity.lean index 2442cda2f38211..9abefd4e9dcc53 100644 --- a/Mathlib/RingTheory/UniqueFactorizationDomain/Multiplicity.lean +++ b/Mathlib/RingTheory/UniqueFactorizationDomain/Multiplicity.lean @@ -79,7 +79,6 @@ theorem le_emultiplicity_iff_replicate_le_normalizedFactors {a b : R} {n : ℕ} rw [← (prod_normalizedFactors hb).dvd_iff_dvd_right, hu, prod_add, prod_replicate] exact (Associated.pow_pow <| associated_normalize a).dvd.trans (Dvd.intro u.prod rfl) -set_option backward.isDefEq.respectTransparency false in /-- The multiplicity of an irreducible factor of a nonzero element is exactly the number of times the normalized factor occurs in the `normalizedFactors`. diff --git a/Mathlib/RingTheory/UniqueFactorizationDomain/Nat.lean b/Mathlib/RingTheory/UniqueFactorizationDomain/Nat.lean index a48e19eb43a057..06086e026574e4 100644 --- a/Mathlib/RingTheory/UniqueFactorizationDomain/Nat.lean +++ b/Mathlib/RingTheory/UniqueFactorizationDomain/Nat.lean @@ -23,7 +23,6 @@ assert_not_exists Field namespace Nat -set_option backward.isDefEq.respectTransparency false in instance instWfDvdMonoid : WfDvdMonoid ℕ where wf := by refine RelHomClass.wellFounded diff --git a/Mathlib/RingTheory/Unramified/Basic.lean b/Mathlib/RingTheory/Unramified/Basic.lean index e355a275dff095..db0cc35ffa5634 100644 --- a/Mathlib/RingTheory/Unramified/Basic.lean +++ b/Mathlib/RingTheory/Unramified/Basic.lean @@ -67,7 +67,6 @@ variable {R : Type v} [CommRing R] variable {A : Type u} [CommRing A] [Algebra R A] variable {B : Type w} [CommRing B] [Algebra R B] (I : Ideal B) -set_option backward.isDefEq.respectTransparency false in theorem comp_injective [FormallyUnramified R A] (hI : I ^ 2 = ⊥) : Function.Injective ((Ideal.Quotient.mkₐ R I).comp : (A →ₐ[R] B) → A →ₐ[R] B ⧸ I) := by intro f₁ f₂ e diff --git a/Mathlib/RingTheory/Unramified/LocalRing.lean b/Mathlib/RingTheory/Unramified/LocalRing.lean index 974981888213ae..b9d1bcbff96345 100644 --- a/Mathlib/RingTheory/Unramified/LocalRing.lean +++ b/Mathlib/RingTheory/Unramified/LocalRing.lean @@ -149,7 +149,6 @@ lemma isUnramifiedAt_iff_map_eq : instance [Algebra.IsUnramifiedAt R q] : Algebra.IsSeparable p.ResidueField q.ResidueField := ((Algebra.isUnramifiedAt_iff_map_eq _ _ _).mp inferInstance).1 -set_option backward.isDefEq.respectTransparency false in instance [Algebra.IsUnramifiedAt R q] : Module.Finite p.ResidueField q.ResidueField := Algebra.FormallyUnramified.finite_of_free _ _ diff --git a/Mathlib/SetTheory/Cardinal/ENat.lean b/Mathlib/SetTheory/Cardinal/ENat.lean index 928f2a91a5ff9f..cc6a8c9a77ef95 100644 --- a/Mathlib/SetTheory/Cardinal/ENat.lean +++ b/Mathlib/SetTheory/Cardinal/ENat.lean @@ -176,7 +176,6 @@ lemma toENatAux_gc : GaloisConnection (↑) toENatAux := fun n x ↦ by | inl hx => lift x to ℕ using hx; simp | inr hx => simp [toENatAux_eq_top hx, (ofENat_le_aleph0 n).trans hx] -set_option backward.isDefEq.respectTransparency false in theorem toENatAux_le_nat {x : Cardinal} {n : ℕ} : toENatAux x ≤ n ↔ x ≤ n := by cases lt_or_ge x ℵ₀ with | inl hx => lift x to ℕ using hx; simp @@ -187,7 +186,6 @@ lemma toENatAux_eq_nat {x : Cardinal} {n : ℕ} : toENatAux x = n ↔ x = n := b lemma toENatAux_eq_zero {x : Cardinal} : toENatAux x = 0 ↔ x = 0 := toENatAux_eq_nat -set_option backward.isDefEq.respectTransparency false in /-- Projection from cardinals to `ℕ∞`. Sends all infinite cardinals to `⊤`. We define this function as a bundled monotone ring homomorphism. -/ @@ -319,7 +317,6 @@ lemma ofENat_add (m n : ℕ∞) : ofENat (m + n) = m + n := by apply toENat_injO @[simp] lemma ofENat_add_aleph0 (m : ℕ∞) : m + ℵ₀ = ℵ₀ := by rw [add_comm, aleph0_add_ofENat] -set_option backward.isDefEq.respectTransparency false in @[simp] lemma ofENat_mul_aleph0 {m : ℕ∞} (hm : m ≠ 0) : ↑m * ℵ₀ = ℵ₀ := by induction m with | top => exact aleph0_mul_aleph0 diff --git a/Mathlib/SetTheory/Cardinal/Finite.lean b/Mathlib/SetTheory/Cardinal/Finite.lean index 22af94576028a8..f1c4a09831396a 100644 --- a/Mathlib/SetTheory/Cardinal/Finite.lean +++ b/Mathlib/SetTheory/Cardinal/Finite.lean @@ -279,7 +279,6 @@ namespace ENat def card (α : Type*) : ℕ∞ := toENat (mk α) -set_option backward.isDefEq.respectTransparency false in @[simp] theorem card_eq_coe_fintype_card [Fintype α] : card α = Fintype.card α := by simp [card] @@ -371,7 +370,6 @@ lemma card_eq_one_iff_unique {α : Type*} : card α = 1 ↔ Nonempty (Unique α) rw [unique_iff_subsingleton_and_nonempty α, le_antisymm_iff] exact and_congr (card_le_one_iff_subsingleton α) (one_le_card_iff_nonempty α) -set_option backward.isDefEq.respectTransparency false in theorem one_lt_card_iff_nontrivial (α : Type*) : 1 < card α ↔ Nontrivial α := by rw [← Cardinal.one_lt_iff_nontrivial] conv_rhs => rw [← Nat.cast_one] @@ -387,7 +385,6 @@ lemma exists_ne_ne_of_three_le (h : 3 ≤ ENat.card α) (x y : α) : ∃ z, z theorem card_prod (α β : Type*) : card (α × β) = card α * card β := by simp [ENat.card] -set_option backward.isDefEq.respectTransparency false in @[simp] lemma card_fun {α β : Type*} : card (α → β) = (card β) ^ card α := by classical diff --git a/Mathlib/SetTheory/Cardinal/Ordinal.lean b/Mathlib/SetTheory/Cardinal/Ordinal.lean index a9fb92415b3ea9..bb6322897107a3 100644 --- a/Mathlib/SetTheory/Cardinal/Ordinal.lean +++ b/Mathlib/SetTheory/Cardinal/Ordinal.lean @@ -53,7 +53,6 @@ end Cardinal namespace Ordinal -set_option backward.isDefEq.respectTransparency false in theorem lift_card_iSup_le_sum_card {ι : Type u} [Small.{v} ι] (f : ι → Ordinal.{v}) : Cardinal.lift.{u} (⨆ i, f i).card ≤ Cardinal.sum fun i ↦ (f i).card := by simp_rw [← mk_toType] diff --git a/Mathlib/SetTheory/ZFC/Class.lean b/Mathlib/SetTheory/ZFC/Class.lean index ec7b69092fb62b..84db00306f8d38 100644 --- a/Mathlib/SetTheory/ZFC/Class.lean +++ b/Mathlib/SetTheory/ZFC/Class.lean @@ -345,7 +345,6 @@ theorem choice_mem (h : ∅ ∉ x) (y : ZFSet.{u}) (yx : y ∈ x) : rw [@map_fval _ (Classical.allZFSetDefinable _) x y yx, Class.coe_mem, Class.coe_apply] exact choice_mem_aux x h y yx -set_option backward.isDefEq.respectTransparency false in set_option backward.privateInPublic true in private lemma coe_equiv_aux {s : Set ZFSet.{u}} (hs : Small.{u} s) : (mk <| PSet.mk (Shrink s) fun x ↦ ((equivShrink s).symm x).1.out) = s := by diff --git a/Mathlib/Tactic/NormNum/Irrational.lean b/Mathlib/Tactic/NormNum/Irrational.lean index b4d8ab1a39aef6..f7e8d397854c7c 100644 --- a/Mathlib/Tactic/NormNum/Irrational.lean +++ b/Mathlib/Tactic/NormNum/Irrational.lean @@ -222,7 +222,6 @@ private theorem irrational_rpow_nat_rat {x y : ℝ} {x_num y_num y_den k : ℕ} Irrational (x ^ y) := irrational_rpow_rat_rat_of_num hx_isNat.to_isNNRat hy_isNNRat (by simp) hy_coprime hn1 hn2 -set_option backward.isDefEq.respectTransparency false in private theorem irrational_sqrt_rat_of_num {x : ℝ} {num den num_k : ℕ} (hx_isNNRat : IsNNRat x num den) (hx_coprime : Nat.Coprime num den) @@ -234,7 +233,6 @@ private theorem irrational_sqrt_rat_of_num {x : ℝ} {num den num_k : ℕ} hn1 hn2 exact ⟨Invertible.mk (1/2) (by simp) (by simp), by simp⟩ -set_option backward.isDefEq.respectTransparency false in private theorem irrational_sqrt_rat_of_den {x : ℝ} {num den den_k : ℕ} (hx_isNNRat : IsNNRat x num den) (hx_coprime : Nat.Coprime num den) diff --git a/Mathlib/Topology/Algebra/AffineSubspace.lean b/Mathlib/Topology/Algebra/AffineSubspace.lean index 498b17d043be3b..eb390c38681362 100644 --- a/Mathlib/Topology/Algebra/AffineSubspace.lean +++ b/Mathlib/Topology/Algebra/AffineSubspace.lean @@ -29,7 +29,6 @@ namespace AffineSubspace variable {R V P : Type*} [Ring R] [AddCommGroup V] [Module R V] [TopologicalSpace P] [AddTorsor V P] -set_option backward.isDefEq.respectTransparency false in /-- Embedding of an affine subspace to the ambient space, as a continuous affine map. -/ def subtypeA (s : AffineSubspace R P) [Nonempty s] : s →ᴬ[R] P where toAffineMap := s.subtype @@ -38,7 +37,6 @@ def subtypeA (s : AffineSubspace R P) [Nonempty s] : s →ᴬ[R] P where @[simp] lemma coe_subtypeA (s : AffineSubspace R P) [Nonempty s] : ⇑s.subtypeA = Subtype.val := rfl -set_option backward.isDefEq.respectTransparency false in @[simp] lemma subtypeA_toAffineMap (s : AffineSubspace R P) [Nonempty s] : s.subtypeA.toAffineMap = s.subtype := rfl diff --git a/Mathlib/Topology/Algebra/Module/Equiv.lean b/Mathlib/Topology/Algebra/Module/Equiv.lean index 5421134b855c43..eb05d7a3087fc1 100644 --- a/Mathlib/Topology/Algebra/Module/Equiv.lean +++ b/Mathlib/Topology/Algebra/Module/Equiv.lean @@ -992,7 +992,6 @@ theorem map_neg (e : M ≃SL[σ₁₂] M₂) (x : M) : e (-x) = -e x := variable [Module R M₂] [IsTopologicalAddGroup M] -set_option backward.isDefEq.respectTransparency false in /-- A pair of continuous linear maps such that `f₁ ∘ f₂ = id` generates a continuous linear equivalence `e` between `M` and `M₂ × f₁.ker` such that `(e x).2 = x` for `x ∈ f₁.ker`, `(e x).1 = f₁ x`, and `(e (f₂ y)).2 = 0`. The map is given by `e x = (f₁ x, x - f₂ (f₁ x))`. -/ @@ -1356,7 +1355,6 @@ variable {R : Type*} [Ring R] {M : Type*} [TopologicalSpace M] [AddCommGroup M] open ContinuousLinearMap -set_option backward.isDefEq.respectTransparency false in /-- If `p` is a closed complemented submodule, then there exists a submodule `q` and a continuous linear equivalence `M ≃L[R] (p × q)` such that `e (x : p) = (x, 0)`, `e (y : q) = (0, y)`, and `e.symm x = x.1 + x.2`. diff --git a/Mathlib/Topology/Algebra/Module/FiniteDimension.lean b/Mathlib/Topology/Algebra/Module/FiniteDimension.lean index 0c0ff4b6ac3125..33b23aff3b5587 100644 --- a/Mathlib/Topology/Algebra/Module/FiniteDimension.lean +++ b/Mathlib/Topology/Algebra/Module/FiniteDimension.lean @@ -203,7 +203,6 @@ theorem LinearMap.continuous_of_nonzero_on_open (l : E →ₗ[𝕜] 𝕜) (s : S variable [CompleteSpace 𝕜] -set_option backward.isDefEq.respectTransparency false in /-- This version imposes `ι` and `E` to live in the same universe, so you should instead use `continuous_equivFun_basis` which gives the same result without universe restrictions. -/ private theorem continuous_equivFun_basis_aux [T2Space E] {ι : Type v} [Finite ι] @@ -516,7 +515,6 @@ theorem FiniteDimensional.complete [FiniteDimensional 𝕜 E] : CompleteSpace E variable {𝕜 E} -set_option backward.isDefEq.respectTransparency false in /-- A finite-dimensional subspace is complete. -/ theorem Submodule.complete_of_finiteDimensional (s : Submodule 𝕜 E) [FiniteDimensional 𝕜 s] : IsComplete (s : Set E) := @@ -531,7 +529,6 @@ variable {𝕜 E F : Type*} [NontriviallyNormedField 𝕜] [CompleteSpace 𝕜] [AddCommGroup F] [TopologicalSpace F] [T2Space F] [IsTopologicalAddGroup F] [Module 𝕜 F] [ContinuousSMul 𝕜 F] -set_option backward.isDefEq.respectTransparency false in /-- A finite-dimensional subspace is closed. -/ theorem Submodule.closed_of_finiteDimensional [T2Space E] (s : Submodule 𝕜 E) [FiniteDimensional 𝕜 s] : @@ -540,7 +537,6 @@ theorem Submodule.closed_of_finiteDimensional haveI : IsUniformAddGroup E := isUniformAddGroup_of_addCommGroup s.complete_of_finiteDimensional.isClosed -set_option backward.isDefEq.respectTransparency false in /-- An injective linear map with finite-dimensional domain is a closed embedding. -/ theorem LinearMap.isClosedEmbedding_of_injective [T2Space E] [FiniteDimensional 𝕜 E] {f : E →ₗ[𝕜] F} (hf : LinearMap.ker f = ⊥) : IsClosedEmbedding f := diff --git a/Mathlib/Topology/Algebra/Module/UniformConvergence.lean b/Mathlib/Topology/Algebra/Module/UniformConvergence.lean index 197b0fc6d95df6..39818c9bd1aa8e 100644 --- a/Mathlib/Topology/Algebra/Module/UniformConvergence.lean +++ b/Mathlib/Topology/Algebra/Module/UniformConvergence.lean @@ -109,7 +109,6 @@ lemma UniformOnFun.continuousSMul_induced_of_image_bounded (φ : hom) (hφ : IsI refine UniformFun.continuousSMul_induced_of_range_bounded 𝕜 s E H φ' ⟨rfl⟩ fun u ↦ ?_ simpa only [Set.image_eq_range] using h u s hs -set_option backward.isDefEq.respectTransparency false in /-- Let `E` be a TVS, `𝔖 : Set (Set α)` and `H` a submodule of `α →ᵤ[𝔖] E`. If the image of any `S ∈ 𝔖` by any `u ∈ H` is bounded (in the sense of `Bornology.IsVonNBounded`), then `H`, equipped with the topology of `𝔖`-convergence, is a TVS. diff --git a/Mathlib/Topology/Compactification/OnePoint/Sphere.lean b/Mathlib/Topology/Compactification/OnePoint/Sphere.lean index 695eedc0a63cbb..2c54099bb3920d 100644 --- a/Mathlib/Topology/Compactification/OnePoint/Sphere.lean +++ b/Mathlib/Topology/Compactification/OnePoint/Sphere.lean @@ -29,7 +29,6 @@ def onePointHyperplaneHomeoUnitSphere OnePoint.equivOfIsEmbeddingOfRangeEq _ _ (isOpenEmbedding_stereographic_symm hv).toIsEmbedding (range_stereographic_symm hv) -set_option backward.isDefEq.respectTransparency false in /-- A homeomorphism from the one-point compactification of a finite-dimensional real vector space to the sphere. -/ def onePointEquivSphereOfFinrankEq {ι V : Type*} [Fintype ι] diff --git a/Mathlib/Topology/MetricSpace/Kuratowski.lean b/Mathlib/Topology/MetricSpace/Kuratowski.lean index 88704da6fa8ea8..d7d62e15bc42d6 100644 --- a/Mathlib/Topology/MetricSpace/Kuratowski.lean +++ b/Mathlib/Topology/MetricSpace/Kuratowski.lean @@ -47,7 +47,6 @@ def embeddingOfSubset : ℓ^∞(ℕ) := theorem embeddingOfSubset_coe : embeddingOfSubset x a n = dist a (x n) - dist (x 0) (x n) := rfl -set_option backward.isDefEq.respectTransparency false in /-- The embedding map is always a semi-contraction. -/ theorem embeddingOfSubset_dist_le (a b : α) : dist (embeddingOfSubset x a) (embeddingOfSubset x b) ≤ dist a b := by