Skip to content

Commit

Permalink
chore: adaptations for nightly-2024-09-30 (#17296)
Browse files Browse the repository at this point in the history
Co-authored-by: leanprover-community-mathlib4-bot <[email protected]>
Co-authored-by: Kim Morrison <[email protected]>
  • Loading branch information
3 people committed Oct 1, 2024
1 parent 0de2008 commit 1243cdb
Show file tree
Hide file tree
Showing 70 changed files with 190 additions and 214 deletions.
3 changes: 0 additions & 3 deletions Mathlib/Algebra/ContinuedFractions/ConvergentsEquiv.lean
Original file line number Diff line number Diff line change
Expand Up @@ -166,9 +166,6 @@ theorem succ_succ_nth_conv'Aux_eq_succ_nth_conv'Aux_squashSeq :
gp_head.a / (gp_head.b + convs'Aux s.tail (m + 2)) =
convs'Aux (squashSeq s (m + 1)) (m + 2)
by simpa only [convs'Aux, s_head_eq]
have : convs'Aux s.tail (m + 2) = convs'Aux (squashSeq s.tail m) (m + 1) := by
refine IH gp_succ_n ?_
simpa [Stream'.Seq.get?_tail] using s_succ_nth_eq
have : (squashSeq s (m + 1)).head = some gp_head :=
(squashSeq_nth_of_lt m.succ_pos).trans s_head_eq
simp_all [convs'Aux, squashSeq_succ_n_tail_eq_squashSeq_tail_n]
Expand Down
1 change: 0 additions & 1 deletion Mathlib/Algebra/Free.lean
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ Authors: Kenny Lau
import Mathlib.Algebra.Group.Equiv.Basic
import Mathlib.Control.Applicative
import Mathlib.Control.Traversable.Basic
import Mathlib.Data.List.Basic
import Mathlib.Logic.Equiv.Defs
import Mathlib.Tactic.AdaptationNote

Expand Down
2 changes: 1 addition & 1 deletion Mathlib/Algebra/Group/Submonoid/Operations.lean
Original file line number Diff line number Diff line change
Expand Up @@ -591,7 +591,7 @@ theorem closure_closure_coe_preimage {s : Set M} : closure (((↑) : closure s
Subtype.recOn x fun x hx _ => by
refine closure_induction'
(p := fun y hy ↦ (⟨y, hy⟩ : closure s) ∈ closure (((↑) : closure s → M) ⁻¹' s))
(fun g hg => subset_closure hg) ?_ (fun g₁ g₂ hg₁ hg₂ => ?_) hx
_ (fun g hg => subset_closure hg) ?_ (fun g₁ g₂ hg₁ hg₂ => ?_) hx
· exact Submonoid.one_mem _
· exact Submonoid.mul_mem _

Expand Down
2 changes: 1 addition & 1 deletion Mathlib/Algebra/Group/Subsemigroup/Operations.lean
Original file line number Diff line number Diff line change
Expand Up @@ -501,7 +501,7 @@ theorem closure_closure_coe_preimage {s : Set M} :
eq_top_iff.2 fun x =>
Subtype.recOn x fun _ hx' _ => closure_induction'
(p := fun y hy ↦ (⟨y, hy⟩ : closure s) ∈ closure (((↑) : closure s → M) ⁻¹' s))
(fun _ hg => subset_closure hg) (fun _ _ _ _ => Subsemigroup.mul_mem _) hx'
_ (fun _ hg => subset_closure hg) (fun _ _ _ _ => Subsemigroup.mul_mem _) hx'

/-- Given `Subsemigroup`s `s`, `t` of semigroups `M`, `N` respectively, `s × t` as a subsemigroup
of `M × N`. -/
Expand Down
2 changes: 1 addition & 1 deletion Mathlib/Algebra/GroupWithZero/NonZeroDivisors.lean
Original file line number Diff line number Diff line change
Expand Up @@ -304,7 +304,7 @@ theorem mk_mem_nonZeroDivisors_associates : Associates.mk a ∈ (Associates M₀
/-- The non-zero divisors of associates of a monoid with zero `M₀` are isomorphic to the associates
of the non-zero divisors of `M₀` under the map `⟨⟦a⟧, _⟩ ↦ ⟦⟨a, _⟩⟧`. -/
def associatesNonZeroDivisorsEquiv : (Associates M₀)⁰ ≃* Associates M₀⁰ where
toEquiv := .subtypeQuotientEquivQuotientSubtype (s₂ := Associated.setoid _)
toEquiv := .subtypeQuotientEquivQuotientSubtype _ (s₂ := Associated.setoid _)
(· ∈ nonZeroDivisors _)
(by simp [mem_nonZeroDivisors_iff, Quotient.forall, Associates.mk_mul_mk])
(by simp [Associated.setoid])
Expand Down
2 changes: 1 addition & 1 deletion Mathlib/Algebra/Homology/HomologicalBicomplex.lean
Original file line number Diff line number Diff line change
Expand Up @@ -205,7 +205,7 @@ def XXIsoOfEq {x₁ y₁ : I₁} (h₁ : x₁ = y₁) {x₂ y₂ : I₂} (h₂ :

@[simp]
lemma XXIsoOfEq_rfl (i₁ : I₁) (i₂ : I₂) :
K.XXIsoOfEq (rfl : i₁ = i₁) (rfl : i₂ = i₂) = Iso.refl _ := rfl
K.XXIsoOfEq _ _ _ (rfl : i₁ = i₁) (rfl : i₂ = i₂) = Iso.refl _ := rfl


end HomologicalComplex₂
4 changes: 2 additions & 2 deletions Mathlib/Algebra/Homology/TotalComplex.lean
Original file line number Diff line number Diff line change
Expand Up @@ -260,15 +260,15 @@ noncomputable def ιTotal (i₁ : I₁) (i₂ : I₂) (i₁₂ : I₁₂)
@[reassoc (attr := simp)]
lemma XXIsoOfEq_hom_ιTotal {x₁ y₁ : I₁} (h₁ : x₁ = y₁) {x₂ y₂ : I₂} (h₂ : x₂ = y₂)
(i₁₂ : I₁₂) (h : ComplexShape.π c₁ c₂ c₁₂ (y₁, y₂) = i₁₂) :
(K.XXIsoOfEq h₁ h₂).hom ≫ K.ιTotal c₁₂ y₁ y₂ i₁₂ h =
(K.XXIsoOfEq _ _ _ h₁ h₂).hom ≫ K.ιTotal c₁₂ y₁ y₂ i₁₂ h =
K.ιTotal c₁₂ x₁ x₂ i₁₂ (by rw [h₁, h₂, h]) := by
subst h₁ h₂
simp

@[reassoc (attr := simp)]
lemma XXIsoOfEq_inv_ιTotal {x₁ y₁ : I₁} (h₁ : x₁ = y₁) {x₂ y₂ : I₂} (h₂ : x₂ = y₂)
(i₁₂ : I₁₂) (h : ComplexShape.π c₁ c₂ c₁₂ (x₁, x₂) = i₁₂) :
(K.XXIsoOfEq h₁ h₂).inv ≫ K.ιTotal c₁₂ x₁ x₂ i₁₂ h =
(K.XXIsoOfEq _ _ _ h₁ h₂).inv ≫ K.ιTotal c₁₂ x₁ x₂ i₁₂ h =
K.ιTotal c₁₂ y₁ y₂ i₁₂ (by rw [← h, h₁, h₂]) := by
subst h₁ h₂
simp
Expand Down
4 changes: 2 additions & 2 deletions Mathlib/Algebra/Homology/TotalComplexShift.lean
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ noncomputable def totalShift₁XIso (n n' : ℤ) (h : n + x = n') :
(((shiftFunctor₁ C x).obj K).total (up ℤ)).X n ≅ (K.total (up ℤ)).X n' where
hom := totalDesc _ (fun p q hpq => K.ιTotal (up ℤ) (p + x) q n' (by dsimp at hpq ⊢; omega))
inv := totalDesc _ (fun p q hpq =>
(K.XXIsoOfEq (Int.sub_add_cancel p x) rfl).inv ≫
(K.XXIsoOfEq _ _ _ (Int.sub_add_cancel p x) rfl).inv ≫
((shiftFunctor₁ C x).obj K).ιTotal (up ℤ) (p - x) q n
(by dsimp at hpq ⊢; omega))
hom_inv_id := by
Expand Down Expand Up @@ -235,7 +235,7 @@ noncomputable def totalShift₂XIso (n n' : ℤ) (h : n + y = n') :
hom := totalDesc _ (fun p q hpq => (p * y).negOnePow • K.ιTotal (up ℤ) p (q + y) n'
(by dsimp at hpq ⊢; omega))
inv := totalDesc _ (fun p q hpq => (p * y).negOnePow •
(K.XXIsoOfEq rfl (Int.sub_add_cancel q y)).inv ≫
(K.XXIsoOfEq _ _ _ rfl (Int.sub_add_cancel q y)).inv ≫
((shiftFunctor₂ C y).obj K).ιTotal (up ℤ) p (q - y) n (by dsimp at hpq ⊢; omega))
hom_inv_id := by
ext p q h
Expand Down
2 changes: 1 addition & 1 deletion Mathlib/Algebra/Module/Submodule/Lattice.lean
Original file line number Diff line number Diff line change
Expand Up @@ -287,7 +287,7 @@ theorem toAddSubmonoid_sSup (s : Set (Submodule R M)) :
{ toAddSubmonoid := sSup (toAddSubmonoid '' s)
smul_mem' := fun t {m} h ↦ by
simp_rw [AddSubsemigroup.mem_carrier, AddSubmonoid.mem_toSubsemigroup, sSup_eq_iSup'] at h ⊢
refine AddSubmonoid.iSup_induction'
refine AddSubmonoid.iSup_induction' _
(C := fun x _ ↦ t • x ∈ ⨆ p : toAddSubmonoid '' s, (p : AddSubmonoid M)) ?_ ?_
(fun x y _ _ ↦ ?_) h
· rintro ⟨-, ⟨p : Submodule R M, hp : p ∈ s, rfl⟩⟩ x (hx : x ∈ p)
Expand Down
4 changes: 2 additions & 2 deletions Mathlib/Algebra/Order/Group/Abs.lean
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ theorem apply_abs_le_mul_of_one_le {β : Type*} [MulOneClass β] [Preorder β]
theorem abs_add (a b : α) : |a + b| ≤ |a| + |b| :=
abs_le.2
⟨(neg_add |a| |b|).symm ▸
add_le_add ((@neg_le α ..).2 <| neg_le_abs _) ((@neg_le α ..).2 <| neg_le_abs _),
add_le_add (neg_le.2 <| neg_le_abs _) (neg_le.2 <| neg_le_abs _),
add_le_add (le_abs_self _) (le_abs_self _)⟩

theorem abs_add' (a b : α) : |a| ≤ |b| + |b + a| := by simpa using abs_add (-b) (b + a)
Expand Down Expand Up @@ -122,7 +122,7 @@ theorem sub_lt_of_abs_sub_lt_right (h : |a - b| < c) : a - c < b :=
sub_lt_of_abs_sub_lt_left (abs_sub_comm a b ▸ h)

theorem abs_sub_abs_le_abs_sub (a b : α) : |a| - |b| ≤ |a - b| :=
(@sub_le_iff_le_add α ..).2 <|
sub_le_iff_le_add.2 <|
calc
|a| = |a - b + b| := by rw [sub_add_cancel]
_ ≤ |a - b| + |b| := abs_add _ _
Expand Down
6 changes: 2 additions & 4 deletions Mathlib/Algebra/Order/Group/Defs.lean
Original file line number Diff line number Diff line change
Expand Up @@ -175,13 +175,11 @@ variable [OrderedCommGroup α] {a b : α}

@[to_additive (attr := gcongr) neg_le_neg]
theorem inv_le_inv' : a ≤ b → b⁻¹ ≤ a⁻¹ :=
-- Porting note: explicit type annotation was not needed before.
(@inv_le_inv_iff α ..).mpr
inv_le_inv_iff.mpr

@[to_additive (attr := gcongr) neg_lt_neg]
theorem inv_lt_inv' : a < b → b⁻¹ < a⁻¹ :=
-- Porting note: explicit type annotation was not needed before.
(@inv_lt_inv_iff α ..).mpr
inv_lt_inv_iff.mpr

-- The additive version is also a `linarith` lemma.
@[to_additive]
Expand Down
2 changes: 1 addition & 1 deletion Mathlib/Algebra/Star/Free.lean
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ instance : StarRing (FreeAlgebra R X) where
unfold Star.star
simp only [Function.comp_apply]
let y := lift R (X := X) (MulOpposite.op ∘ ι R)
apply induction (C := fun x ↦ (y (y x).unop).unop = x) _ _ _ _ x
refine induction (C := fun x ↦ (y (y x).unop).unop = x) _ _ ?_ ?_ ?_ ?_ x
· intros
simp only [AlgHom.commutes, MulOpposite.algebraMap_apply, MulOpposite.unop_op]
· intros
Expand Down
10 changes: 9 additions & 1 deletion Mathlib/AlgebraicGeometry/Morphisms/QuasiCompact.lean
Original file line number Diff line number Diff line change
Expand Up @@ -198,7 +198,15 @@ theorem exists_pow_mul_eq_zero_of_res_basicOpen_eq_zero_of_isAffineOpen (X : Sch
{U : X.Opens} (hU : IsAffineOpen U) (x f : Γ(X, U))
(H : x |_ X.basicOpen f = 0) : ∃ n : ℕ, f ^ n * x = 0 := by
rw [← map_zero (X.presheaf.map (homOfLE <| X.basicOpen_le f : X.basicOpen f ⟶ U).op)] at H
obtain ⟨n, e⟩ := (hU.isLocalization_basicOpen f).exists_of_eq H
#adaptation_note
/--
Prior to nightly-2024-09-29, we could use dot notation here:
`(hU.isLocalization_basicOpen f).exists_of_eq H`
This is no longer possible;
likely changing the signature of `IsLocalization.Away.exists_of_eq` is in order.
-/
obtain ⟨n, e⟩ :=
@IsLocalization.Away.exists_of_eq _ _ _ _ _ _ (hU.isLocalization_basicOpen f) _ _ H
exact ⟨n, by simpa [mul_comm x] using e⟩

/-- If `x : Γ(X, U)` is zero on `D(f)` for some `f : Γ(X, U)`, and `U` is quasi-compact, then
Expand Down
8 changes: 4 additions & 4 deletions Mathlib/AlgebraicGeometry/OpenImmersion.lean
Original file line number Diff line number Diff line change
Expand Up @@ -431,22 +431,22 @@ instance pullback_fst_of_right : IsOpenImmersion (pullback.fst g f) := by
rw [← pullbackSymmetry_hom_comp_snd]
-- Porting note: was just `infer_instance`, it is a bit weird that no explicit class instance is
-- provided but still class inference fail to find this
exact LocallyRingedSpace.IsOpenImmersion.comp (H := inferInstance) _
exact LocallyRingedSpace.IsOpenImmersion.comp (H := inferInstance) _ _

instance pullback_to_base [IsOpenImmersion g] :
IsOpenImmersion (limit.π (cospan f g) WalkingCospan.one) := by
rw [← limit.w (cospan f g) WalkingCospan.Hom.inl]
change IsOpenImmersion (_ ≫ f)
-- Porting note: was just `infer_instance`, it is a bit weird that no explicit class instance is
-- provided but still class inference fail to find this
exact LocallyRingedSpace.IsOpenImmersion.comp (H := inferInstance) _
exact LocallyRingedSpace.IsOpenImmersion.comp (H := inferInstance) _ _

instance forgetToTopPreservesOfLeft : PreservesLimit (cospan f g) Scheme.forgetToTop := by
delta Scheme.forgetToTop
apply @Limits.compPreservesLimit (K := cospan f g) (F := forget)
refine @Limits.compPreservesLimit _ _ _ _ _ _ (K := cospan f g) _ _ (F := forget)
(G := LocallyRingedSpace.forgetToTop) ?_ ?_
· infer_instance
apply @preservesLimitOfIsoDiagram (F := _) _ _ _ _ _ _ (diagramIsoCospan.{u} _).symm ?_
refine @preservesLimitOfIsoDiagram _ _ _ _ _ _ _ _ _ (diagramIsoCospan.{u} _).symm ?_
dsimp [LocallyRingedSpace.forgetToTop]
infer_instance

Expand Down
2 changes: 1 addition & 1 deletion Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean
Original file line number Diff line number Diff line change
Expand Up @@ -811,7 +811,7 @@ If `f ∈ A` is a homogeneous element of positive degree, then the projective sp
-/
def projIsoSpec (f) {m} (f_deg : f ∈ 𝒜 m) (hm : 0 < m) :
(Proj| pbo f) ≅ (Spec (A⁰_ f)) :=
@asIso (f := toSpec 𝒜 f) (isIso_toSpec 𝒜 f f_deg hm)
@asIso _ _ _ _ (f := toSpec 𝒜 f) (isIso_toSpec 𝒜 f f_deg hm)

/--
This is the scheme `Proj(A)` for any `ℕ`-graded ring `A`.
Expand Down
2 changes: 1 addition & 1 deletion Mathlib/AlgebraicGeometry/Pullbacks.lean
Original file line number Diff line number Diff line change
Expand Up @@ -507,7 +507,7 @@ def openCoverOfBase' (𝒰 : OpenCover Z) (f : X ⟶ Z) (g : Y ⟶ Z) : OpenCove
pasteVertIsPullback rfl (pullbackIsPullback g (𝒰.map i))
(pullbackIsPullback (pullback.snd g (𝒰.map i)) (pullback.snd f (𝒰.map i)))
refine
@openCoverOfIsIso
@openCoverOfIsIso _ _
(f := (pullbackSymmetry _ _).hom ≫ (limit.isoLimitCone ⟨_, this⟩).inv ≫
pullback.map _ _ _ _ (𝟙 _) (𝟙 _) (𝟙 _) ?_ ?_) inferInstance
· simp [← pullback.condition]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -605,7 +605,7 @@ variable {A : Type*} [TopologicalSpace A] [Ring A] [StarRing A] [Algebra ℂ A]

lemma cfcHom_real_eq_restrict {a : A} (ha : IsSelfAdjoint a) :
cfcHom ha = ha.spectrumRestricts.starAlgHom (cfcHom ha.isStarNormal) (f := Complex.reCLM) :=
ha.spectrumRestricts.cfcHom_eq_restrict Complex.isometry_ofReal.uniformEmbedding
ha.spectrumRestricts.cfcHom_eq_restrict _ Complex.isometry_ofReal.uniformEmbedding
ha ha.isStarNormal

lemma cfc_real_eq_complex {a : A} (f : ℝ → ℝ) (ha : IsSelfAdjoint a := by cfc_tac) :
Expand All @@ -626,7 +626,7 @@ variable {A : Type*} [TopologicalSpace A] [NonUnitalRing A] [StarRing A] [Module
lemma cfcₙHom_real_eq_restrict {a : A} (ha : IsSelfAdjoint a) :
cfcₙHom ha = (ha.quasispectrumRestricts.2).nonUnitalStarAlgHom (cfcₙHom ha.isStarNormal)
(f := Complex.reCLM) :=
ha.quasispectrumRestricts.2.cfcₙHom_eq_restrict Complex.isometry_ofReal.uniformEmbedding
ha.quasispectrumRestricts.2.cfcₙHom_eq_restrict _ Complex.isometry_ofReal.uniformEmbedding
ha ha.isStarNormal

lemma cfcₙ_real_eq_complex {a : A} (f : ℝ → ℝ) (ha : IsSelfAdjoint a := by cfc_tac) :
Expand All @@ -649,14 +649,14 @@ variable {A : Type*} [TopologicalSpace A] [Ring A] [PartialOrder A] [StarRing A]

lemma cfcHom_nnreal_eq_restrict {a : A} (ha : 0 ≤ a) :
cfcHom ha = (SpectrumRestricts.nnreal_of_nonneg ha).starAlgHom
(cfcHom (IsSelfAdjoint.of_nonneg ha)) := by
apply (SpectrumRestricts.nnreal_of_nonneg ha).cfcHom_eq_restrict uniformEmbedding_subtype_val
(cfcHom (IsSelfAdjoint.of_nonneg ha)) :=
(SpectrumRestricts.nnreal_of_nonneg ha).cfcHom_eq_restrict _ uniformEmbedding_subtype_val _ _

lemma cfc_nnreal_eq_real {a : A} (f : ℝ≥0 → ℝ≥0) (ha : 0 ≤ a := by cfc_tac) :
cfc f a = cfc (fun x ↦ f x.toNNReal : ℝ → ℝ) a := by
replace ha : 0 ≤ a := ha -- hack to avoid issues caused by autoParam
apply (SpectrumRestricts.nnreal_of_nonneg ha).cfc_eq_restrict
uniformEmbedding_subtype_val ha (.of_nonneg ha)
exact (SpectrumRestricts.nnreal_of_nonneg ha).cfc_eq_restrict _
uniformEmbedding_subtype_val ha (.of_nonneg ha) _

end NNRealEqReal

Expand All @@ -673,15 +673,15 @@ variable {A : Type*} [TopologicalSpace A] [NonUnitalRing A] [PartialOrder A] [St

lemma cfcₙHom_nnreal_eq_restrict {a : A} (ha : 0 ≤ a) :
cfcₙHom ha = (QuasispectrumRestricts.nnreal_of_nonneg ha).nonUnitalStarAlgHom
(cfcₙHom (IsSelfAdjoint.of_nonneg ha)) := by
apply (QuasispectrumRestricts.nnreal_of_nonneg ha).cfcₙHom_eq_restrict
uniformEmbedding_subtype_val
(cfcₙHom (IsSelfAdjoint.of_nonneg ha)) :=
(QuasispectrumRestricts.nnreal_of_nonneg ha).cfcₙHom_eq_restrict _
uniformEmbedding_subtype_val _ _

lemma cfcₙ_nnreal_eq_real {a : A} (f : ℝ≥0 → ℝ≥0) (ha : 0 ≤ a := by cfc_tac) :
cfcₙ f a = cfcₙ (fun x ↦ f x.toNNReal : ℝ → ℝ) a := by
replace ha : 0 ≤ a := ha -- hack to avoid issues caused by autoParam
apply (QuasispectrumRestricts.nnreal_of_nonneg ha).cfcₙ_eq_restrict
uniformEmbedding_subtype_val ha (.of_nonneg ha)
exact (QuasispectrumRestricts.nnreal_of_nonneg ha).cfcₙ_eq_restrict _
uniformEmbedding_subtype_val ha (.of_nonneg ha) _

end NNRealEqRealNonUnital

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -421,7 +421,7 @@ lemma cfcₙ_comp (g f : R → R) (a : A)
ext
simp
rw [cfcₙ_apply .., cfcₙ_apply f a,
cfcₙ_apply _ (by convert hg) (ha := cfcₙHom_predicate (show p a from ha) _) ,
cfcₙ_apply _ _ (by convert hg) (ha := cfcₙHom_predicate (show p a from ha) _),
← cfcₙHom_comp _ _]
swap
· exact ⟨.mk _ <| hf.restrict.codRestrict fun x ↦ by rw [sp_eq]; use x.1; simp, Subtype.ext hf0⟩
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -723,7 +723,7 @@ noncomputable def cfcUnits (hf' : ∀ x ∈ spectrum R a, f x ≠ 0)
lemma cfcUnits_pow (hf' : ∀ x ∈ spectrum R a, f x ≠ 0) (n : ℕ)
(hf : ContinuousOn f (spectrum R a) := by cfc_cont_tac) (ha : p a := by cfc_tac) :
(cfcUnits f a hf') ^ n =
cfcUnits (forall₂_imp (fun _ _ ↦ pow_ne_zero n) hf') (hf := hf.pow n) := by
cfcUnits _ _ (forall₂_imp (fun _ _ ↦ pow_ne_zero n) hf') (hf := hf.pow n) := by
ext
cases n with
| zero => simp [cfc_const_one R a]
Expand Down Expand Up @@ -778,7 +778,7 @@ lemma cfcUnits_zpow (hf' : ∀ x ∈ spectrum R a, f x ≠ 0) (n : ℤ)
| negSucc n =>
simp only [zpow_negSucc, ← inv_pow]
ext
exact cfc_pow (hf := hf.inv₀ hf') _ |>.symm
exact cfc_pow (hf := hf.inv₀ hf') .. |>.symm

lemma cfc_zpow (a : Aˣ) (n : ℤ) (ha : p a := by cfc_tac) :
cfc (fun x : R ↦ x ^ n) (a : A) = ↑(a ^ n) := by
Expand Down
4 changes: 2 additions & 2 deletions Mathlib/CategoryTheory/Extensive.lean
Original file line number Diff line number Diff line change
Expand Up @@ -527,7 +527,7 @@ instance FinitaryPreExtensive.hasPullbacks_of_inclusions [FinitaryPreExtensive C
{α : Type*} (f : X ⟶ Z) {Y : (a : α) → C} (i : (a : α) → Y a ⟶ Z) [Finite α]
[hi : IsIso (Sigma.desc i)] (a : α) : HasPullback f (i a) := by
apply FinitaryPreExtensive.hasPullbacks_of_is_coproduct (c := Cofan.mk Z i)
exact @IsColimit.ofPointIso (t := Cofan.mk Z i) (P := _) hi
exact @IsColimit.ofPointIso (t := Cofan.mk Z i) (P := _) (i := hi)

lemma FinitaryPreExtensive.sigma_desc_iso [FinitaryPreExtensive C] {α : Type} [Finite α] {X : C}
{Z : α → C} (π : (a : α) → Z a ⟶ X) {Y : C} (f : Y ⟶ X) (hπ : IsIso (Sigma.desc π)) :
Expand All @@ -536,7 +536,7 @@ lemma FinitaryPreExtensive.sigma_desc_iso [FinitaryPreExtensive C] {α : Type} [
change IsIso (this.coconePointUniqueUpToIso (getColimitCocone _).2).inv
infer_instance
let this : IsColimit (Cofan.mk X π) := by
refine @IsColimit.ofPointIso (t := Cofan.mk X π) (P := coproductIsCoproduct Z) ?_
refine @IsColimit.ofPointIso (t := Cofan.mk X π) (P := coproductIsCoproduct Z) (i := ?_)
convert hπ
simp [coproductIsCoproduct]
refine (FinitaryPreExtensive.isUniversal_finiteCoproducts this
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,7 @@ precomposition by `L`. -/
noncomputable def ranAdjunction : (whiskeringLeft C D H).obj L ⊣ L.ran :=
Adjunction.mkOfHomEquiv
{ homEquiv := fun F G =>
(homEquivOfIsRightKanExtension (α := L.ranCounit.app G) F).symm
(homEquivOfIsRightKanExtension (α := L.ranCounit.app G) _ F).symm
homEquiv_naturality_right := fun {F G₁ G₂} β f ↦
hom_ext_of_isRightKanExtension _ (L.ranCounit.app G₂) _ _ (by
ext X
Expand Down
2 changes: 1 addition & 1 deletion Mathlib/CategoryTheory/GradedObject/Monoidal.lean
Original file line number Diff line number Diff line change
Expand Up @@ -325,7 +325,7 @@ lemma left_tensor_tensorObj₃_ext {j : I} {A : C} (Z : C)
(_ ◁ ιTensorObj₃ X₁ X₂ X₃ i₁ i₂ i₃ j h) ≫ f =
(_ ◁ ιTensorObj₃ X₁ X₂ X₃ i₁ i₂ i₃ j h) ≫ g) : f = g := by
refine (@isColimitOfPreserves C _ C _ _ _ _ ((curriedTensor C).obj Z) _
(isColimitCofan₃MapBifunctorBifunctor₂₃MapObj (H := H) j) hZ).hom_ext ?_
(isColimitCofan₃MapBifunctorBifunctor₂₃MapObj (H := H) (j := j)) hZ).hom_ext ?_
intro ⟨⟨i₁, i₂, i₃⟩, hi⟩
exact h _ _ _ hi

Expand Down
Loading

0 comments on commit 1243cdb

Please sign in to comment.